diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx index 56a9357..d8be881 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx index 86ae6d8..621ba94 100644 --- a/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/ActivityMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx index 54166ba..3e99bb6 100644 --- a/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/AiAttackAttr.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx index 977d88e..3365d1e 100644 --- a/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/BulletBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx index 649b1cf..4d36cdd 100644 --- a/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/EnemyBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx index b37ee9d..fbcd2d9 100644 --- a/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/LiquidMaterial.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx index 1ecc6e6..aacb12d 100644 --- a/DungeonShooting_Godot/excel/excelFile/Sound.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/Sound.xlsx Binary files differ diff --git a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx index 142888e..1db86f9 100644 --- a/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx +++ b/DungeonShooting_Godot/excel/excelFile/WeaponBase.xlsx Binary files differ diff --git a/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn b/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn index 5117e12..9189dc9 100644 --- a/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn +++ b/DungeonShooting_Godot/prefab/bullet/laser/Laser0001.tscn @@ -6,10 +6,11 @@ [sub_resource type="RectangleShape2D" id="RectangleShape2D_l4vuk"] resource_local_to_scene = true -[node name="Laser0001" type="Area2D"] +[node name="Laser0001" type="Area2D" node_paths=PackedStringArray("Particles2D")] collision_layer = 2 monitorable = false script = ExtResource("1_3w0rp") +Particles2D = [] [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("RectangleShape2D_l4vuk") diff --git a/DungeonShooting_Godot/prefab/ui/EditorTools.tscn b/DungeonShooting_Godot/prefab/ui/EditorTools.tscn index cea4982..9817a68 100644 --- a/DungeonShooting_Godot/prefab/ui/EditorTools.tscn +++ b/DungeonShooting_Godot/prefab/ui/EditorTools.tscn @@ -100,6 +100,18 @@ layout_mode = 2 text = "运行" +[node name="HBoxContainer8" type="HBoxContainer" parent="ScrollContainer/MarginContainer/VBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 5 + +[node name="Label" type="Label" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8"] +layout_mode = 2 +text = "打开Excel表文件夹" + +[node name="Button" type="Button" parent="ScrollContainer/MarginContainer/VBoxContainer/HBoxContainer8"] +layout_mode = 2 +text = "运行" + [node name="Confirm" type="ConfirmationDialog" parent="."] initial_position = 1 size = Vector2i(350, 200) diff --git a/DungeonShooting_Godot/resource/config/BulletBase.json b/DungeonShooting_Godot/resource/config/BulletBase.json index dff8861..5985b17 100644 --- a/DungeonShooting_Godot/resource/config/BulletBase.json +++ b/DungeonShooting_Godot/resource/config/BulletBase.json @@ -169,7 +169,7 @@ 70 ], "BounceCount": [ - 999 + 4 ], "Penetration": [ 0 diff --git a/DungeonShooting_Godot/resource/config/WeaponBase.json b/DungeonShooting_Godot/resource/config/WeaponBase.json index 8f0b579..3cbe120 100644 --- a/DungeonShooting_Godot/resource/config/WeaponBase.json +++ b/DungeonShooting_Godot/resource/config/WeaponBase.json @@ -1,8 +1,8 @@ [ { "Id": "0001", - "__Activity": "weapon0001", "Remark": "\u6B65\u67AA", + "__Activity": "weapon0001", "Weight": 40, "WeightType": 2, "IsMelee": false, @@ -29,6 +29,7 @@ "FinalFiringSpeed": 480, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -78,8 +79,8 @@ }, { "Id": "0002", - "__Activity": "", "Remark": "\u6B65\u67AA", + "__Activity": "", "Weight": 40, "WeightType": 2, "IsMelee": false, @@ -106,6 +107,7 @@ "FinalFiringSpeed": 480, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -155,8 +157,8 @@ }, { "Id": "0003", - "__Activity": "weapon0002", "Remark": "\u9730\u5F39\u67AA", + "__Activity": "weapon0002", "Weight": 40, "WeightType": 2, "IsMelee": false, @@ -183,6 +185,7 @@ "FinalFiringSpeed": 120, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 5 ], @@ -232,8 +235,8 @@ }, { "Id": "0004", - "__Activity": "", "Remark": "\u9730\u5F39\u67AA", + "__Activity": "", "Weight": 40, "WeightType": 2, "IsMelee": false, @@ -260,6 +263,7 @@ "FinalFiringSpeed": 120, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 5 ], @@ -309,8 +313,8 @@ }, { "Id": "0005", - "__Activity": "weapon0003", "Remark": "\u624B\u67AA", + "__Activity": "weapon0003", "Weight": 20, "WeightType": 1, "IsMelee": false, @@ -337,6 +341,7 @@ "FinalFiringSpeed": 460, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -386,8 +391,8 @@ }, { "Id": "0006", - "__Activity": "", "Remark": "\u624B\u67AA", + "__Activity": "", "Weight": 20, "WeightType": 1, "IsMelee": false, @@ -414,6 +419,7 @@ "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -463,8 +469,8 @@ }, { "Id": "0007", - "__Activity": "weapon0004", "Remark": "\u5200", + "__Activity": "weapon0004", "Weight": 40, "WeightType": 2, "IsMelee": true, @@ -491,6 +497,7 @@ "FinalFiringSpeed": 180, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -539,8 +546,8 @@ }, { "Id": "0008", - "__Activity": "", "Remark": "\u5200", + "__Activity": "", "Weight": 40, "WeightType": 2, "IsMelee": true, @@ -567,6 +574,7 @@ "FinalFiringSpeed": 180, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -615,8 +623,8 @@ }, { "Id": "0009", - "__Activity": "weapon0005", "Remark": "\u72D9\u51FB\u67AA", + "__Activity": "weapon0005", "Weight": 50, "WeightType": 2, "IsMelee": false, @@ -643,6 +651,7 @@ "FinalFiringSpeed": 150, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -692,8 +701,8 @@ }, { "Id": "0010", - "__Activity": "", "Remark": "\u72D9\u51FB\u67AA", + "__Activity": "", "Weight": 50, "WeightType": 2, "IsMelee": false, @@ -720,6 +729,7 @@ "FinalFiringSpeed": 150, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -769,8 +779,8 @@ }, { "Id": "0011", - "__Activity": "weapon0006", "Remark": "\u51B2\u950B\u67AA", + "__Activity": "weapon0006", "Weight": 30, "WeightType": 2, "IsMelee": false, @@ -797,6 +807,7 @@ "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -846,8 +857,8 @@ }, { "Id": "0012", - "__Activity": "", "Remark": "\u51B2\u950B\u67AA", + "__Activity": "", "Weight": 30, "WeightType": 2, "IsMelee": false, @@ -874,6 +885,7 @@ "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -923,8 +935,8 @@ }, { "Id": "0013", - "__Activity": "weapon0007", "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", + "__Activity": "weapon0007", "Weight": 40, "WeightType": 2, "IsMelee": false, @@ -951,6 +963,7 @@ "FinalFiringSpeed": 700, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0.5, "FireBulletCountRange": [ 1 ], @@ -1000,8 +1013,8 @@ }, { "Id": "0014", - "__Activity": "", "Remark": "\u6C64\u59C6\u900A\u51B2\u950B\u67AA", + "__Activity": "", "Weight": 40, "WeightType": 2, "IsMelee": false, @@ -1028,6 +1041,7 @@ "FinalFiringSpeed": 200, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -1077,8 +1091,8 @@ }, { "Id": "0015", - "__Activity": "weapon0008", "Remark": "\u6FC0\u5149\u624B\u67AA", + "__Activity": "weapon0008", "Weight": 40, "WeightType": 1, "IsMelee": false, @@ -1105,14 +1119,15 @@ "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], "DelayedTime": 0, "StartScatteringRange": 0, - "FinalScatteringRange": 20, - "ScatteringRangeAddValue": 4, - "ScatteringRangeBackSpeed": 40, + "FinalScatteringRange": 8, + "ScatteringRangeAddValue": 3, + "ScatteringRangeBackSpeed": 20, "ScatteringRangeBackDelayTime": 0.5, "CameraShake": 2, "BacklashRange": [ @@ -1154,8 +1169,8 @@ }, { "Id": "0016", - "__Activity": "", "Remark": "\u6FC0\u5149\u624B\u67AA", + "__Activity": "", "Weight": 40, "WeightType": 1, "IsMelee": false, @@ -1182,14 +1197,15 @@ "FinalFiringSpeed": 300, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], "DelayedTime": 0, "StartScatteringRange": 0, - "FinalScatteringRange": 20, - "ScatteringRangeAddValue": 4, - "ScatteringRangeBackSpeed": 40, + "FinalScatteringRange": 8, + "ScatteringRangeAddValue": 3, + "ScatteringRangeBackSpeed": 20, "ScatteringRangeBackDelayTime": 0.5, "CameraShake": 2, "BacklashRange": [ @@ -1231,8 +1247,8 @@ }, { "Id": "0017", - "__Activity": "weapon0009", "Remark": "\u69B4\u5F39\u53D1\u5C04\u5668", + "__Activity": "weapon0009", "Weight": 40, "WeightType": 1, "IsMelee": false, @@ -1259,6 +1275,7 @@ "FinalFiringSpeed": 60, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], @@ -1308,8 +1325,8 @@ }, { "Id": "0018", - "__Activity": "", "Remark": "\u69B4\u5F39\u53D1\u5C04\u5668", + "__Activity": "", "Weight": 40, "WeightType": 1, "IsMelee": false, @@ -1336,6 +1353,7 @@ "FinalFiringSpeed": 60, "FiringSpeedAddSpeed": 0, "FiringSpeedBackSpeed": 0, + "FiringSpeedBackTime": 0, "FireBulletCountRange": [ 1 ], diff --git a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs index 8a535fd..e3de8cf 100644 --- a/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs +++ b/DungeonShooting_Godot/src/config/ExcelConfig_WeaponBase.cs @@ -14,17 +14,17 @@ public string Id; /// - /// 属性绑定武器的Id,这个id时ActivityBase表Id,如果是Ai使用的数据, 则填空字符串串 - /// - public ActivityBase Activity; - - /// /// 备注 /// [JsonInclude] public string Remark; /// + /// 属性绑定武器的Id,这个id时ActivityBase表Id,如果是Ai使用的数据, 则填空字符串串 + /// + public ActivityBase Activity; + + /// /// 重量 /// [JsonInclude] @@ -173,6 +173,12 @@ public float FiringSpeedBackSpeed; /// + /// 松开扳机后射速消散开始时间, 单位: 秒 + /// + [JsonInclude] + public float FiringSpeedBackTime; + + /// /// 单次开火发射子弹数量区间
/// 格式为[value]或者[min,max] ///
@@ -381,8 +387,8 @@ { var inst = new WeaponBase(); inst.Id = Id; - inst.Activity = Activity; inst.Remark = Remark; + inst.Activity = Activity; inst.Weight = Weight; inst.WeightType = WeightType; inst.IsMelee = IsMelee; @@ -407,6 +413,7 @@ inst.FinalFiringSpeed = FinalFiringSpeed; inst.FiringSpeedAddSpeed = FiringSpeedAddSpeed; inst.FiringSpeedBackSpeed = FiringSpeedBackSpeed; + inst.FiringSpeedBackTime = FiringSpeedBackTime; inst.FireBulletCountRange = FireBulletCountRange; inst.DelayedTime = DelayedTime; inst.StartScatteringRange = StartScatteringRange; diff --git a/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs b/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs index 56735dd..785f4a8 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/laser/Laser.cs @@ -127,7 +127,7 @@ //执行反弹 if (doRebound) { - OnRebound(reboundPosition.Value, reboundNormal.Value); + CallDeferred(nameof(OnRebound), reboundPosition.Value, reboundNormal.Value); } Collision.SetDeferred(CollisionShape2D.PropertyName.Disabled, false); })); diff --git a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs index fa7e3b6..1a763f3 100644 --- a/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs +++ b/DungeonShooting_Godot/src/game/activity/bullet/normal/BoomBullet.cs @@ -31,6 +31,7 @@ if (CurrentBounce > BulletData.BounceCount) //反弹次数超过限制 { PlayBoom(); + DoReclaim(); } else { diff --git a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs index eb92364..2f4a139 100644 --- a/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs +++ b/DungeonShooting_Godot/src/game/activity/weapon/Weapon.cs @@ -149,6 +149,11 @@ /// public long TriggerRoleAttackLayer { get; private set; } + /// + /// 武器当前射速 + /// + public float CurrentFiringSpeed { get; private set; } + //-------------------------------------------------------------------------------------------- //用于记录是否有角色操作过这把武器 @@ -467,6 +472,8 @@ _attackTimer = _attackTimer > 0 ? _attackTimer - delta : 0; //武器的当前散射半径 ScatteringRangeBackHandler(delta); + //武器当前射速 + FiringSpeedBackHandler(delta); //松开扳机 if (_triggerFlag || _downTimer > 0) { @@ -662,12 +669,21 @@ } } - //散射值销退 + //散射值消退 if (_noAttackTime >= Attribute.ScatteringRangeBackDelayTime) { ScatteringRangeBackHandler(delta); } + if (_triggerFlag) //射速增加 + { + FiringSpeedAddHandler(delta); + } + else if (_noAttackTime >= Attribute.FiringSpeedBackTime) //射速消退 + { + FiringSpeedBackHandler(delta); + } + _triggerTimer = _triggerTimer > 0 ? _triggerTimer - delta : 0; _triggerFlag = false; _attackFlag = false; @@ -1009,7 +1025,7 @@ } //开火间隙, 这里的60指的是60秒 - _fireInterval = 60 / Attribute.StartFiringSpeed; + _fireInterval = 60 / CurrentFiringSpeed; //攻击冷却 _attackTimer += _fireInterval; @@ -1548,6 +1564,34 @@ } } + //射速增加处理 + private void FiringSpeedAddHandler(float delta) + { + if (Attribute.ContinuousShoot) + { + CurrentFiringSpeed = Mathf.MoveToward(CurrentFiringSpeed, Attribute.FinalFiringSpeed, + Attribute.FiringSpeedAddSpeed * delta); + } + else + { + CurrentFiringSpeed = Attribute.StartFiringSpeed; + } + } + + //射速衰减处理 + private void FiringSpeedBackHandler(float delta) + { + if (Attribute.ContinuousShoot) + { + CurrentFiringSpeed = Mathf.MoveToward(CurrentFiringSpeed, Attribute.StartFiringSpeed, + Attribute.FiringSpeedBackSpeed * delta); + } + else + { + CurrentFiringSpeed = Attribute.StartFiringSpeed; + } + } + /// /// 换弹计时器时间到, 执行换弹操作 /// diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs index 28c78f3..ea4d712 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorTools.cs @@ -342,6 +342,59 @@ } /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer8.Label + /// + public class Label_5 : UiNode + { + public Label_5(EditorToolsPanel uiPanel, Godot.Label node) : base(uiPanel, node) { } + public override Label_5 Clone() => new (UiPanel, (Godot.Label)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer8.Button + /// + public class Button_5 : UiNode + { + public Button_5(EditorToolsPanel uiPanel, Godot.Button node) : base(uiPanel, node) { } + public override Button_5 Clone() => new (UiPanel, (Godot.Button)Instance.Duplicate()); + } + + /// + /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer8 + /// + public class HBoxContainer8 : UiNode + { + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Label + /// + public Label_5 L_Label + { + get + { + if (_L_Label == null) _L_Label = new Label_5(UiPanel, Instance.GetNode("Label")); + return _L_Label; + } + } + private Label_5 _L_Label; + + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.Button + /// + public Button_5 L_Button + { + get + { + if (_L_Button == null) _L_Button = new Button_5(UiPanel, Instance.GetNode("Button")); + return _L_Button; + } + } + private Button_5 _L_Button; + + public HBoxContainer8(EditorToolsPanel uiPanel, Godot.HBoxContainer node) : base(uiPanel, node) { } + public override HBoxContainer8 Clone() => new (UiPanel, (Godot.HBoxContainer)Instance.Duplicate()); + } + + /// /// 类型: , 路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer /// public class VBoxContainer : UiNode @@ -411,6 +464,19 @@ } private HBoxContainer7 _L_HBoxContainer7; + /// + /// 使用 Instance 属性获取当前节点实例对象, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.HBoxContainer8 + /// + public HBoxContainer8 L_HBoxContainer8 + { + get + { + if (_L_HBoxContainer8 == null) _L_HBoxContainer8 = new HBoxContainer8(UiPanel, Instance.GetNode("HBoxContainer8")); + return _L_HBoxContainer8; + } + } + private HBoxContainer8 _L_HBoxContainer8; + public VBoxContainer(EditorToolsPanel uiPanel, Godot.VBoxContainer node) : base(uiPanel, node) { } public override VBoxContainer Clone() => new (UiPanel, (Godot.VBoxContainer)Instance.Duplicate()); } @@ -509,6 +575,11 @@ public HBoxContainer7 S_HBoxContainer7 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer7; /// + /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer.HBoxContainer8 + /// + public HBoxContainer8 S_HBoxContainer8 => L_ScrollContainer.L_MarginContainer.L_VBoxContainer.L_HBoxContainer8; + + /// /// 场景中唯一名称的节点, 节点类型: , 节点路径: EditorTools.ScrollContainer.MarginContainer.VBoxContainer /// public VBoxContainer S_VBoxContainer => L_ScrollContainer.L_MarginContainer.L_VBoxContainer; diff --git a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs index 9116891..864e2a4 100644 --- a/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs +++ b/DungeonShooting_Godot/src/game/ui/editorTools/EditorToolsPanel.cs @@ -3,6 +3,7 @@ using System.IO; using System.Text.RegularExpressions; using Godot; +using Environment = System.Environment; #if TOOLS using Generator; @@ -58,6 +59,8 @@ container.L_HBoxContainer5.L_Button.Instance.Pressed += GenerateUiManagerMethods; //导出excel表 container.L_HBoxContainer7.L_Button.Instance.Pressed += ExportExcel; + //打开excel表文件夹 + container.L_HBoxContainer8.L_Button.Instance.Pressed += OpenExportExcelFolder; } public override void OnHideUi() @@ -76,6 +79,7 @@ container.L_HBoxContainer3.L_Button.Instance.Pressed -= OnCreateUI; container.L_HBoxContainer5.L_Button.Instance.Pressed -= GenerateUiManagerMethods; container.L_HBoxContainer7.L_Button.Instance.Pressed -= ExportExcel; + container.L_HBoxContainer8.L_Button.Instance.Pressed -= OpenExportExcelFolder; } /// @@ -293,6 +297,15 @@ ExcelGenerator.ExportExcel(); ShowTips("提示", "已启动导表程序, 注意查看控制台信息!"); } + + /// + /// 使用资源管理器打开excel表文件夹 + /// + private void OpenExportExcelFolder() + { + var path = Environment.CurrentDirectory + "\\excel\\excelFile"; + System.Diagnostics.Process.Start("explorer.exe", path); + } /// /// 在编辑器中打开一个提示窗口