diff --git a/.codely/clipboard/clipboard-1789035856411.png b/.codely/clipboard/clipboard-1789035856411.png deleted file mode 100644 index db35187..0000000 Binary files a/.codely/clipboard/clipboard-1789035856411.png and /dev/null differ diff --git a/.codely/clipboard/clipboard-1789036124706.png b/.codely/clipboard/clipboard-1789036124706.png deleted file mode 100644 index 41ec1da..0000000 Binary files a/.codely/clipboard/clipboard-1789036124706.png and /dev/null differ diff --git a/.codely/clipboard/clipboard-1789038020114.png b/.codely/clipboard/clipboard-1789038020114.png deleted file mode 100644 index a449c43..0000000 Binary files a/.codely/clipboard/clipboard-1789038020114.png and /dev/null differ diff --git a/.codely/clipboard/clipboard-1789117841996.png b/.codely/clipboard/clipboard-1789117841996.png new file mode 100644 index 0000000..c6a940f Binary files /dev/null and b/.codely/clipboard/clipboard-1789117841996.png differ diff --git a/.codely/clipboard/clipboard-1789117885103.png b/.codely/clipboard/clipboard-1789117885103.png new file mode 100644 index 0000000..c6a940f Binary files /dev/null and b/.codely/clipboard/clipboard-1789117885103.png differ diff --git a/Assets/Prefab.meta b/Assets/Levels.meta similarity index 67% rename from Assets/Prefab.meta rename to Assets/Levels.meta index 3448ef0..67d46a9 100644 --- a/Assets/Prefab.meta +++ b/Assets/Levels.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: DHsctyn5UXucqLXlzCQubWjL0znuA/0JbeK6L3Lj4b6F5AWikgHtIec= +guid: DikZ4S77UXlTT7Phtkkf0LRjLQ2B7d8Otqk4Y/ZN4anJK3ALsIP4Wu4= folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Prefabs/Environment.meta b/Assets/Levels/Configs.meta similarity index 67% rename from Assets/Prefabs/Environment.meta rename to Assets/Levels/Configs.meta index 6435856..07b6a0c 100644 --- a/Assets/Prefabs/Environment.meta +++ b/Assets/Levels/Configs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: CCwYty6sBXoEaZPE2zBxjzE69Ou+2rDYZaHeNh5bsO7EQdSWMjrl7jk= +guid: Dy4ZsCmuUXqS2BN8pE+BQbBzohf+5NEwC24AayDTkim4LM9QI3bS+hQ= folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Levels/Configs/level_chapter1_level1.json b/Assets/Levels/Configs/level_chapter1_level1.json new file mode 100644 index 0000000..27cb19b --- /dev/null +++ b/Assets/Levels/Configs/level_chapter1_level1.json @@ -0,0 +1,72 @@ +{ + "levelId": "chapter1_level1", + "levelName": "第一章第一关 - 初遇敌军", + "difficulty": 1, + "waves": [ + { + "waveIndex": 1, + "triggerZPosition": 20, + "enemies": [ + { + "characterDataId": "人类士兵Data", + "count": 2, + "level": 1, + "spawnPositions": [ + {"x": -1.5, "y": 0, "z": 25}, + {"x": 1.5, "y": 0, "z": 25} + ] + } + ] + }, + { + "waveIndex": 2, + "triggerZPosition": 50, + "enemies": [ + { + "characterDataId": "人类士兵Data", + "count": 3, + "level": 1, + "spawnPositions": [ + {"x": -2, "y": 0, "z": 25}, + {"x": 0, "y": 0, "z": 25}, + {"x": 2, "y": 0, "z": 25} + ] + }, + { + "characterDataId": "弓箭手Data", + "count": 1, + "level": 1, + "spawnPositions": [ + {"x": 0, "y": 0, "z": 22} + ] + } + ] + }, + { + "waveIndex": 3, + "triggerZPosition": 80, + "enemies": [ + { + "characterDataId": "人类士兵Data", + "count": 4, + "level": 2, + "spawnPositions": [ + {"x": -3, "y": 0, "z": 15}, + {"x": -1, "y": 0, "z": 15}, + {"x": 1, "y": 0, "z": 15}, + {"x": 3, "y": 0, "z": 15} + ] + }, + { + "characterDataId": "弓箭手Data", + "count": 2, + "level": 1, + "spawnPositions": [ + {"x": -2, "y": 0, "z": 12}, + {"x": 2, "y": 0, "z": 12} + ] + } + ] + } + ] +} diff --git a/Assets/Levels/Configs/level_chapter1_level1.json.meta b/Assets/Levels/Configs/level_chapter1_level1.json.meta new file mode 100644 index 0000000..a6cefce --- /dev/null +++ b/Assets/Levels/Configs/level_chapter1_level1.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: XnhJti6oBn6S0GWVZbnI9MFmPoAzIuM/oKsg+ygTdZYyklL2uJsf+RE= +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs.meta b/Assets/Prefabs.meta index 6fe07d8..3448ef0 100644 --- a/Assets/Prefabs.meta +++ b/Assets/Prefabs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: WSgftnyvWi1SncSOdnIG6XW/wmu5nZ9dQrLIL73gQirXduulIhpTChc= +guid: DHsctyn5UXucqLXlzCQubWjL0znuA/0JbeK6L3Lj4b6F5AWikgHtIec= folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Prefabs/Environment/Platforms.meta b/Assets/Prefabs/Environment/Platforms.meta deleted file mode 100644 index d1e854b..0000000 --- a/Assets/Prefabs/Environment/Platforms.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: WSgbvS+lV3JoFvQAgMymLe1U9tkGmItbdZKGucVe6ZUcS8aMzHhTR08= -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Prefabs/Environment/Props.meta b/Assets/Prefabs/Environment/Props.meta deleted file mode 100644 index f2ec081..0000000 --- a/Assets/Prefabs/Environment/Props.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: XHpLsCL5Unw8rdPuwGyOHvUOJDwYZUD6bvIKF3hi2w+9H+vYYGt3txA= -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Prefab/武器飞行物.meta b/Assets/Prefabs/武器飞行物.meta similarity index 100% rename from Assets/Prefab/武器飞行物.meta rename to Assets/Prefabs/武器飞行物.meta diff --git a/Assets/Prefab/武器飞行物/火球.prefab b/Assets/Prefabs/武器飞行物/火球.prefab similarity index 100% rename from Assets/Prefab/武器飞行物/火球.prefab rename to Assets/Prefabs/武器飞行物/火球.prefab diff --git a/Assets/Prefab/武器飞行物/火球.prefab.meta b/Assets/Prefabs/武器飞行物/火球.prefab.meta similarity index 100% rename from Assets/Prefab/武器飞行物/火球.prefab.meta rename to Assets/Prefabs/武器飞行物/火球.prefab.meta diff --git a/Assets/Prefab/武器飞行物/箭矢.prefab b/Assets/Prefabs/武器飞行物/箭矢.prefab similarity index 100% rename from Assets/Prefab/武器飞行物/箭矢.prefab rename to Assets/Prefabs/武器飞行物/箭矢.prefab diff --git a/Assets/Prefab/武器飞行物/箭矢.prefab.meta b/Assets/Prefabs/武器飞行物/箭矢.prefab.meta similarity index 100% rename from Assets/Prefab/武器飞行物/箭矢.prefab.meta rename to Assets/Prefabs/武器飞行物/箭矢.prefab.meta diff --git a/Assets/Prefab/特效.meta b/Assets/Prefabs/特效.meta similarity index 100% rename from Assets/Prefab/特效.meta rename to Assets/Prefabs/特效.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物.meta b/Assets/Prefabs/特效/主角攻击飞行物.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物.meta rename to Assets/Prefabs/特效/主角攻击飞行物.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角蓝色魔法球.prefab b/Assets/Prefabs/特效/主角攻击飞行物/主角蓝色魔法球.prefab similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角蓝色魔法球.prefab rename to Assets/Prefabs/特效/主角攻击飞行物/主角蓝色魔法球.prefab diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角蓝色魔法球.prefab.meta b/Assets/Prefabs/特效/主角攻击飞行物/主角蓝色魔法球.prefab.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角蓝色魔法球.prefab.meta rename to Assets/Prefabs/特效/主角攻击飞行物/主角蓝色魔法球.prefab.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球光晕.mat b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球光晕.mat similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球光晕.mat rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球光晕.mat diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球光晕.mat.meta b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球光晕.mat.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球光晕.mat.meta rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球光晕.mat.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中.mat b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中.mat similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中.mat rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中.mat diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中.mat.meta b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中.mat.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中.mat.meta rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中.mat.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab.meta b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab.meta rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球命中爆炸.prefab.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球拖尾.mat b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球拖尾.mat similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球拖尾.mat rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球拖尾.mat diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球拖尾.mat.meta b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球拖尾.mat.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球拖尾.mat.meta rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球拖尾.mat.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球核心.mat b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球核心.mat similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球核心.mat rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球核心.mat diff --git a/Assets/Prefab/特效/主角攻击飞行物/主角魔法球核心.mat.meta b/Assets/Prefabs/特效/主角攻击飞行物/主角魔法球核心.mat.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/主角魔法球核心.mat.meta rename to Assets/Prefabs/特效/主角攻击飞行物/主角魔法球核心.mat.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/命中爆闪贴图.png b/Assets/Prefabs/特效/主角攻击飞行物/命中爆闪贴图.png similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/命中爆闪贴图.png rename to Assets/Prefabs/特效/主角攻击飞行物/命中爆闪贴图.png diff --git a/Assets/Prefab/特效/主角攻击飞行物/命中爆闪贴图.png.meta b/Assets/Prefabs/特效/主角攻击飞行物/命中爆闪贴图.png.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/命中爆闪贴图.png.meta rename to Assets/Prefabs/特效/主角攻击飞行物/命中爆闪贴图.png.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/外层光晕贴图.png b/Assets/Prefabs/特效/主角攻击飞行物/外层光晕贴图.png similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/外层光晕贴图.png rename to Assets/Prefabs/特效/主角攻击飞行物/外层光晕贴图.png diff --git a/Assets/Prefab/特效/主角攻击飞行物/外层光晕贴图.png.meta b/Assets/Prefabs/特效/主角攻击飞行物/外层光晕贴图.png.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/外层光晕贴图.png.meta rename to Assets/Prefabs/特效/主角攻击飞行物/外层光晕贴图.png.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/飞行拖尾贴图.png b/Assets/Prefabs/特效/主角攻击飞行物/飞行拖尾贴图.png similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/飞行拖尾贴图.png rename to Assets/Prefabs/特效/主角攻击飞行物/飞行拖尾贴图.png diff --git a/Assets/Prefab/特效/主角攻击飞行物/飞行拖尾贴图.png.meta b/Assets/Prefabs/特效/主角攻击飞行物/飞行拖尾贴图.png.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/飞行拖尾贴图.png.meta rename to Assets/Prefabs/特效/主角攻击飞行物/飞行拖尾贴图.png.meta diff --git a/Assets/Prefab/特效/主角攻击飞行物/魔法弹核心贴图.png b/Assets/Prefabs/特效/主角攻击飞行物/魔法弹核心贴图.png similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/魔法弹核心贴图.png rename to Assets/Prefabs/特效/主角攻击飞行物/魔法弹核心贴图.png diff --git a/Assets/Prefab/特效/主角攻击飞行物/魔法弹核心贴图.png.meta b/Assets/Prefabs/特效/主角攻击飞行物/魔法弹核心贴图.png.meta similarity index 100% rename from Assets/Prefab/特效/主角攻击飞行物/魔法弹核心贴图.png.meta rename to Assets/Prefabs/特效/主角攻击飞行物/魔法弹核心贴图.png.meta diff --git a/Assets/Prefab/特效/眩晕特效.meta b/Assets/Prefabs/特效/眩晕特效.meta similarity index 100% rename from Assets/Prefab/特效/眩晕特效.meta rename to Assets/Prefabs/特效/眩晕特效.meta diff --git a/Assets/Prefab/特效/眩晕特效/星星新.png b/Assets/Prefabs/特效/眩晕特效/星星新.png similarity index 100% rename from Assets/Prefab/特效/眩晕特效/星星新.png rename to Assets/Prefabs/特效/眩晕特效/星星新.png diff --git a/Assets/Prefab/特效/眩晕特效/星星新.png.meta b/Assets/Prefabs/特效/眩晕特效/星星新.png.meta similarity index 100% rename from Assets/Prefab/特效/眩晕特效/星星新.png.meta rename to Assets/Prefabs/特效/眩晕特效/星星新.png.meta diff --git a/Assets/Prefab/特效/眩晕特效/星星新_去白底.png b/Assets/Prefabs/特效/眩晕特效/星星新_去白底.png similarity index 100% rename from Assets/Prefab/特效/眩晕特效/星星新_去白底.png rename to Assets/Prefabs/特效/眩晕特效/星星新_去白底.png diff --git a/Assets/Prefab/特效/眩晕特效/星星新_去白底.png.meta b/Assets/Prefabs/特效/眩晕特效/星星新_去白底.png.meta similarity index 100% rename from Assets/Prefab/特效/眩晕特效/星星新_去白底.png.meta rename to Assets/Prefabs/特效/眩晕特效/星星新_去白底.png.meta diff --git a/Assets/Prefab/特效/眩晕特效/眩晕星星粒子.mat b/Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.mat similarity index 100% rename from Assets/Prefab/特效/眩晕特效/眩晕星星粒子.mat rename to Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.mat diff --git a/Assets/Prefab/特效/眩晕特效/眩晕星星粒子.mat.meta b/Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.mat.meta similarity index 100% rename from Assets/Prefab/特效/眩晕特效/眩晕星星粒子.mat.meta rename to Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.mat.meta diff --git a/Assets/Prefab/特效/眩晕特效/眩晕星星粒子.prefab b/Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.prefab similarity index 100% rename from Assets/Prefab/特效/眩晕特效/眩晕星星粒子.prefab rename to Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.prefab diff --git a/Assets/Prefab/特效/眩晕特效/眩晕星星粒子.prefab.meta b/Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.prefab.meta similarity index 100% rename from Assets/Prefab/特效/眩晕特效/眩晕星星粒子.prefab.meta rename to Assets/Prefabs/特效/眩晕特效/眩晕星星粒子.prefab.meta diff --git a/Assets/Prefab/第一章.meta b/Assets/Prefabs/第一章.meta similarity index 100% rename from Assets/Prefab/第一章.meta rename to Assets/Prefabs/第一章.meta diff --git a/Assets/Prefab/第一章/人类士兵.prefab b/Assets/Prefabs/第一章/人类士兵.prefab similarity index 99% rename from Assets/Prefab/第一章/人类士兵.prefab rename to Assets/Prefabs/第一章/人类士兵.prefab index 3c6d031..7f5b2ed 100644 --- a/Assets/Prefab/第一章/人类士兵.prefab +++ b/Assets/Prefabs/第一章/人类士兵.prefab @@ -109,7 +109,7 @@ PrefabInstance: - target: {fileID: 919132149155446097, guid: 5072af719b9b1401787c6c55f048d8ed, type: 3} propertyPath: m_TagString - value: Friend + value: Enemy objectReference: {fileID: 0} - target: {fileID: 5866666021909216657, guid: 5072af719b9b1401787c6c55f048d8ed, type: 3} diff --git a/Assets/Prefab/第一章/人类士兵.prefab.meta b/Assets/Prefabs/第一章/人类士兵.prefab.meta similarity index 100% rename from Assets/Prefab/第一章/人类士兵.prefab.meta rename to Assets/Prefabs/第一章/人类士兵.prefab.meta diff --git a/Assets/Prefabs/Environment/DecorationSets.meta b/Assets/Prefabs/第一章/场景装饰.meta similarity index 67% rename from Assets/Prefabs/Environment/DecorationSets.meta rename to Assets/Prefabs/第一章/场景装饰.meta index d1c3442..68bce36 100644 --- a/Assets/Prefabs/Environment/DecorationSets.meta +++ b/Assets/Prefabs/第一章/场景装饰.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: XHwcvS38WnOoeEEgVrhnmiiLt48ib/cxDjxah4ni9UKQH9C5sOmHbzE= +guid: WigW4XutWylwUmvPcuIIUi5mymU0Mfzxigc4OrdMsAEOIN7NYfffLz4= folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Prefabs/Environment/Props/Crate_Wooden.prefab b/Assets/Prefabs/第一章/场景装饰/Crate_Wooden.prefab similarity index 100% rename from Assets/Prefabs/Environment/Props/Crate_Wooden.prefab rename to Assets/Prefabs/第一章/场景装饰/Crate_Wooden.prefab diff --git a/Assets/Prefabs/Environment/Props/Crate_Wooden.prefab.meta b/Assets/Prefabs/第一章/场景装饰/Crate_Wooden.prefab.meta similarity index 100% rename from Assets/Prefabs/Environment/Props/Crate_Wooden.prefab.meta rename to Assets/Prefabs/第一章/场景装饰/Crate_Wooden.prefab.meta diff --git a/Assets/Prefabs/Environment/Props/Fence_Broken.prefab b/Assets/Prefabs/第一章/场景装饰/Fence_Broken.prefab similarity index 100% rename from Assets/Prefabs/Environment/Props/Fence_Broken.prefab rename to Assets/Prefabs/第一章/场景装饰/Fence_Broken.prefab diff --git a/Assets/Prefabs/Environment/Props/Fence_Broken.prefab.meta b/Assets/Prefabs/第一章/场景装饰/Fence_Broken.prefab.meta similarity index 100% rename from Assets/Prefabs/Environment/Props/Fence_Broken.prefab.meta rename to Assets/Prefabs/第一章/场景装饰/Fence_Broken.prefab.meta diff --git a/Assets/Prefabs/Environment/Props/Flag_Castle.prefab b/Assets/Prefabs/第一章/场景装饰/Flag_Castle.prefab similarity index 100% rename from Assets/Prefabs/Environment/Props/Flag_Castle.prefab rename to Assets/Prefabs/第一章/场景装饰/Flag_Castle.prefab diff --git a/Assets/Prefabs/Environment/Props/Flag_Castle.prefab.meta b/Assets/Prefabs/第一章/场景装饰/Flag_Castle.prefab.meta similarity index 100% rename from Assets/Prefabs/Environment/Props/Flag_Castle.prefab.meta rename to Assets/Prefabs/第一章/场景装饰/Flag_Castle.prefab.meta diff --git a/Assets/Prefabs/Environment/Props/StoneWall_Low.prefab b/Assets/Prefabs/第一章/场景装饰/StoneWall_Low.prefab similarity index 100% rename from Assets/Prefabs/Environment/Props/StoneWall_Low.prefab rename to Assets/Prefabs/第一章/场景装饰/StoneWall_Low.prefab diff --git a/Assets/Prefabs/Environment/Props/StoneWall_Low.prefab.meta b/Assets/Prefabs/第一章/场景装饰/StoneWall_Low.prefab.meta similarity index 100% rename from Assets/Prefabs/Environment/Props/StoneWall_Low.prefab.meta rename to Assets/Prefabs/第一章/场景装饰/StoneWall_Low.prefab.meta diff --git a/Assets/Prefab/第一章/弓箭手.prefab b/Assets/Prefabs/第一章/弓箭手.prefab similarity index 99% rename from Assets/Prefab/第一章/弓箭手.prefab rename to Assets/Prefabs/第一章/弓箭手.prefab index 2a233c7..95a309b 100644 --- a/Assets/Prefab/第一章/弓箭手.prefab +++ b/Assets/Prefabs/第一章/弓箭手.prefab @@ -93,12 +93,12 @@ PrefabInstance: - target: {fileID: 919132149155446097, guid: 7b0dd5b38a9cd144ea135f3743440958, type: 3} propertyPath: m_Name - value: "\u5F13\u7BAD\u624B\u65B0" + value: "\u5F13\u7BAD\u624B" objectReference: {fileID: 0} - target: {fileID: 919132149155446097, guid: 7b0dd5b38a9cd144ea135f3743440958, type: 3} propertyPath: m_TagString - value: Friend + value: Enemy objectReference: {fileID: 0} - target: {fileID: 5866666021909216657, guid: 7b0dd5b38a9cd144ea135f3743440958, type: 3} @@ -212,6 +212,7 @@ MonoBehaviour: detectRange: 200 attackRange: 6 modelFacingOffset: 90 + useRootMotion: 0 attackPower: 34 attackDuration: 1.33 attackType: 2 diff --git a/Assets/Prefab/第一章/弓箭手.prefab.meta b/Assets/Prefabs/第一章/弓箭手.prefab.meta similarity index 100% rename from Assets/Prefab/第一章/弓箭手.prefab.meta rename to Assets/Prefabs/第一章/弓箭手.prefab.meta diff --git a/Assets/Prefab/第一章/法师.prefab b/Assets/Prefabs/第一章/法师.prefab similarity index 100% rename from Assets/Prefab/第一章/法师.prefab rename to Assets/Prefabs/第一章/法师.prefab diff --git a/Assets/Prefab/第一章/法师.prefab.meta b/Assets/Prefabs/第一章/法师.prefab.meta similarity index 100% rename from Assets/Prefab/第一章/法师.prefab.meta rename to Assets/Prefabs/第一章/法师.prefab.meta diff --git a/Assets/Prefab/第一章/盾卫.prefab b/Assets/Prefabs/第一章/盾卫.prefab similarity index 100% rename from Assets/Prefab/第一章/盾卫.prefab rename to Assets/Prefabs/第一章/盾卫.prefab diff --git a/Assets/Prefab/第一章/盾卫.prefab.meta b/Assets/Prefabs/第一章/盾卫.prefab.meta similarity index 100% rename from Assets/Prefab/第一章/盾卫.prefab.meta rename to Assets/Prefabs/第一章/盾卫.prefab.meta diff --git a/Assets/Prefab/第一章/精锐士兵.prefab b/Assets/Prefabs/第一章/精锐士兵.prefab similarity index 100% rename from Assets/Prefab/第一章/精锐士兵.prefab rename to Assets/Prefabs/第一章/精锐士兵.prefab diff --git a/Assets/Prefab/第一章/精锐士兵.prefab.meta b/Assets/Prefabs/第一章/精锐士兵.prefab.meta similarity index 100% rename from Assets/Prefab/第一章/精锐士兵.prefab.meta rename to Assets/Prefabs/第一章/精锐士兵.prefab.meta diff --git a/Assets/Prefab/第二章.meta b/Assets/Prefabs/第二章.meta similarity index 100% rename from Assets/Prefab/第二章.meta rename to Assets/Prefabs/第二章.meta diff --git a/Assets/Prefab/第二章/弓箭猎人.prefab b/Assets/Prefabs/第二章/弓箭猎人.prefab similarity index 100% rename from Assets/Prefab/第二章/弓箭猎人.prefab rename to Assets/Prefabs/第二章/弓箭猎人.prefab diff --git a/Assets/Prefab/第二章/弓箭猎人.prefab.meta b/Assets/Prefabs/第二章/弓箭猎人.prefab.meta similarity index 100% rename from Assets/Prefab/第二章/弓箭猎人.prefab.meta rename to Assets/Prefabs/第二章/弓箭猎人.prefab.meta diff --git a/Assets/Prefab/第二章/狼人.prefab b/Assets/Prefabs/第二章/狼人.prefab similarity index 100% rename from Assets/Prefab/第二章/狼人.prefab rename to Assets/Prefabs/第二章/狼人.prefab diff --git a/Assets/Prefab/第二章/狼人.prefab.meta b/Assets/Prefabs/第二章/狼人.prefab.meta similarity index 100% rename from Assets/Prefab/第二章/狼人.prefab.meta rename to Assets/Prefabs/第二章/狼人.prefab.meta diff --git a/Assets/Prefab/第二章/石巨人.prefab b/Assets/Prefabs/第二章/石巨人.prefab similarity index 100% rename from Assets/Prefab/第二章/石巨人.prefab rename to Assets/Prefabs/第二章/石巨人.prefab diff --git a/Assets/Prefab/第二章/石巨人.prefab.meta b/Assets/Prefabs/第二章/石巨人.prefab.meta similarity index 100% rename from Assets/Prefab/第二章/石巨人.prefab.meta rename to Assets/Prefabs/第二章/石巨人.prefab.meta diff --git a/Assets/Prefab/第二章/蓝色怪物.prefab b/Assets/Prefabs/第二章/蓝色怪物.prefab similarity index 100% rename from Assets/Prefab/第二章/蓝色怪物.prefab rename to Assets/Prefabs/第二章/蓝色怪物.prefab diff --git a/Assets/Prefab/第二章/蓝色怪物.prefab.meta b/Assets/Prefabs/第二章/蓝色怪物.prefab.meta similarity index 100% rename from Assets/Prefab/第二章/蓝色怪物.prefab.meta rename to Assets/Prefabs/第二章/蓝色怪物.prefab.meta diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..76a23c5 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: WntL4ymoVnwADNGzdjGBSgWjjyqLYl5jHWXtdO9o7kMtUdQbJKCRKR8= +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data.meta b/Assets/Resources/Data.meta similarity index 67% rename from Assets/Data.meta rename to Assets/Resources/Data.meta index 433065e..2d401dd 100644 --- a/Assets/Data.meta +++ b/Assets/Resources/Data.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: C34dsCurVnrlVITVjItF/WctNok+y18W0KOIm5xL0gZ1PDr9n6T4WO0= +guid: CnsXvHz5ASppkiXktPFaHV29KUMyU4NUPsp2gxQFJrPWhFqosPUrl/A= folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Data/HumanSoldierData.asset b/Assets/Resources/Data/HumanSoldierData.asset similarity index 100% rename from Assets/Data/HumanSoldierData.asset rename to Assets/Resources/Data/HumanSoldierData.asset diff --git a/Assets/Data/HumanSoldierData.asset.meta b/Assets/Resources/Data/HumanSoldierData.asset.meta similarity index 100% rename from Assets/Data/HumanSoldierData.asset.meta rename to Assets/Resources/Data/HumanSoldierData.asset.meta diff --git a/Assets/Data/人类士兵Data.asset b/Assets/Resources/Data/人类士兵Data.asset similarity index 100% rename from Assets/Data/人类士兵Data.asset rename to Assets/Resources/Data/人类士兵Data.asset diff --git a/Assets/Data/人类士兵Data.asset.meta b/Assets/Resources/Data/人类士兵Data.asset.meta similarity index 100% rename from Assets/Data/人类士兵Data.asset.meta rename to Assets/Resources/Data/人类士兵Data.asset.meta diff --git a/Assets/Data/弓箭手Data.asset b/Assets/Resources/Data/弓箭手Data.asset similarity index 100% rename from Assets/Data/弓箭手Data.asset rename to Assets/Resources/Data/弓箭手Data.asset diff --git a/Assets/Data/弓箭手Data.asset.meta b/Assets/Resources/Data/弓箭手Data.asset.meta similarity index 100% rename from Assets/Data/弓箭手Data.asset.meta rename to Assets/Resources/Data/弓箭手Data.asset.meta diff --git a/Assets/Resources/Data/弓箭猎人Data.asset b/Assets/Resources/Data/弓箭猎人Data.asset new file mode 100644 index 0000000..8673b18 --- /dev/null +++ b/Assets/Resources/Data/弓箭猎人Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u5F13\u7BAD\u730E\u4EBAData" + m_EditorClassIdentifier: + characterId: "\u5F13\u7BAD\u730E\u4EBA" + characterName: "\u5F13\u7BAD\u730E\u4EBA" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 3 + cooldownTime: 1 + baseMaxHealth: 145 + baseAttackPower: 36 + baseMoveSpeed: 3.5 + healthPerLevel: 7.25 + attackPerLevel: 1.8 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/弓箭猎人Data.asset.meta b/Assets/Resources/Data/弓箭猎人Data.asset.meta new file mode 100644 index 0000000..b59cb69 --- /dev/null +++ b/Assets/Resources/Data/弓箭猎人Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: CylM4S2lUny56Ttm6gKOS8upWrRKmGtWDyTHCW2L5i7dexfm3KF83rw= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/法师Data.asset b/Assets/Resources/Data/法师Data.asset similarity index 100% rename from Assets/Data/法师Data.asset rename to Assets/Resources/Data/法师Data.asset diff --git a/Assets/Data/法师Data.asset.meta b/Assets/Resources/Data/法师Data.asset.meta similarity index 100% rename from Assets/Data/法师Data.asset.meta rename to Assets/Resources/Data/法师Data.asset.meta diff --git a/Assets/Resources/Data/狂暴狼人Data.asset b/Assets/Resources/Data/狂暴狼人Data.asset new file mode 100644 index 0000000..7451154 --- /dev/null +++ b/Assets/Resources/Data/狂暴狼人Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u72C2\u66B4\u72FC\u4EBAData" + m_EditorClassIdentifier: + characterId: "\u72C2\u66B4\u72FC\u4EBA" + characterName: "\u72C2\u66B4\u72FC\u4EBA" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 4 + cooldownTime: 1 + baseMaxHealth: 360 + baseAttackPower: 38 + baseMoveSpeed: 3.8 + healthPerLevel: 18 + attackPerLevel: 1.9 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/狂暴狼人Data.asset.meta b/Assets/Resources/Data/狂暴狼人Data.asset.meta new file mode 100644 index 0000000..6d0364d --- /dev/null +++ b/Assets/Resources/Data/狂暴狼人Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: WykZtyqlUS8UkPieLepE8vS74XYRZUWWmfO+PlfAzsxYVQCYQYsF+QM= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/盾卫Data.asset b/Assets/Resources/Data/盾卫Data.asset similarity index 100% rename from Assets/Data/盾卫Data.asset rename to Assets/Resources/Data/盾卫Data.asset diff --git a/Assets/Data/盾卫Data.asset.meta b/Assets/Resources/Data/盾卫Data.asset.meta similarity index 100% rename from Assets/Data/盾卫Data.asset.meta rename to Assets/Resources/Data/盾卫Data.asset.meta diff --git a/Assets/Resources/Data/石巨人Data.asset b/Assets/Resources/Data/石巨人Data.asset new file mode 100644 index 0000000..e3e9d66 --- /dev/null +++ b/Assets/Resources/Data/石巨人Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u77F3\u5DE8\u4EBAData" + m_EditorClassIdentifier: + characterId: "\u77F3\u5DE8\u4EBA" + characterName: "\u77F3\u5DE8\u4EBA" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 7 + cooldownTime: 1 + baseMaxHealth: 820 + baseAttackPower: 72 + baseMoveSpeed: 2.5 + healthPerLevel: 41 + attackPerLevel: 3.6 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/石巨人Data.asset.meta b/Assets/Resources/Data/石巨人Data.asset.meta new file mode 100644 index 0000000..eb22bcd --- /dev/null +++ b/Assets/Resources/Data/石巨人Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: DihLvSOkUCq6p7PazigZ1V8x7vEwAys/6ba/FY3orljrC02F9al+wNk= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Data/精锐士兵Data.asset b/Assets/Resources/Data/精锐士兵Data.asset similarity index 100% rename from Assets/Data/精锐士兵Data.asset rename to Assets/Resources/Data/精锐士兵Data.asset diff --git a/Assets/Data/精锐士兵Data.asset.meta b/Assets/Resources/Data/精锐士兵Data.asset.meta similarity index 100% rename from Assets/Data/精锐士兵Data.asset.meta rename to Assets/Resources/Data/精锐士兵Data.asset.meta diff --git a/Assets/Resources/Data/绿色史莱姆Data.asset b/Assets/Resources/Data/绿色史莱姆Data.asset new file mode 100644 index 0000000..56d9183 --- /dev/null +++ b/Assets/Resources/Data/绿色史莱姆Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u7EFF\u8272\u53F2\u83B1\u59C6Data" + m_EditorClassIdentifier: + characterId: "\u7EFF\u8272\u53F2\u83B1\u59C6" + characterName: "\u7EFF\u8272\u53F2\u83B1\u59C6" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 1 + cooldownTime: 1 + baseMaxHealth: 150 + baseAttackPower: 18 + baseMoveSpeed: 3 + healthPerLevel: 7.5 + attackPerLevel: 0.9 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/绿色史莱姆Data.asset.meta b/Assets/Resources/Data/绿色史莱姆Data.asset.meta new file mode 100644 index 0000000..45f1e22 --- /dev/null +++ b/Assets/Resources/Data/绿色史莱姆Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: BnsZsCv5VH4gLdavIUCqk8oHQsrzy3wWWSb+FHsiVUXvmWVonhGilz4= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/荒野之王Data.asset b/Assets/Resources/Data/荒野之王Data.asset new file mode 100644 index 0000000..13ea3f7 --- /dev/null +++ b/Assets/Resources/Data/荒野之王Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u8352\u91CE\u4E4B\u738BData" + m_EditorClassIdentifier: + characterId: "\u8352\u91CE\u4E4B\u738B" + characterName: "\u8352\u91CE\u4E4B\u738B" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 8 + cooldownTime: 1 + baseMaxHealth: 900 + baseAttackPower: 82 + baseMoveSpeed: 2.8 + healthPerLevel: 45 + attackPerLevel: 4.1 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/荒野之王Data.asset.meta b/Assets/Resources/Data/荒野之王Data.asset.meta new file mode 100644 index 0000000..ed064f8 --- /dev/null +++ b/Assets/Resources/Data/荒野之王Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: B3IZtiykVy8TYv5Y8LzW2f+R64SvIkxCVRJEzoTgJ1sCy39Ic4NwRkY= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/荒野流寇Data.asset b/Assets/Resources/Data/荒野流寇Data.asset new file mode 100644 index 0000000..8a6423c --- /dev/null +++ b/Assets/Resources/Data/荒野流寇Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u8352\u91CE\u6D41\u5BC7Data" + m_EditorClassIdentifier: + characterId: "\u8352\u91CE\u6D41\u5BC7" + characterName: "\u8352\u91CE\u6D41\u5BC7" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 2 + cooldownTime: 1 + baseMaxHealth: 240 + baseAttackPower: 30 + baseMoveSpeed: 3.5 + healthPerLevel: 12 + attackPerLevel: 1.5 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/荒野流寇Data.asset.meta b/Assets/Resources/Data/荒野流寇Data.asset.meta new file mode 100644 index 0000000..e7dd837 --- /dev/null +++ b/Assets/Resources/Data/荒野流寇Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: CisctyqqVi8H982PN7YjVYbAxrC6F+NVSXO1+IZMNpN+3QQ7LMpWEqw= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/荒野祭司Data.asset b/Assets/Resources/Data/荒野祭司Data.asset new file mode 100644 index 0000000..cd83b68 --- /dev/null +++ b/Assets/Resources/Data/荒野祭司Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u8352\u91CE\u796D\u53F8Data" + m_EditorClassIdentifier: + characterId: "\u8352\u91CE\u796D\u53F8" + characterName: "\u8352\u91CE\u796D\u53F8" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 5 + cooldownTime: 1 + baseMaxHealth: 260 + baseAttackPower: 24 + baseMoveSpeed: 3 + healthPerLevel: 13 + attackPerLevel: 1.2 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/荒野祭司Data.asset.meta b/Assets/Resources/Data/荒野祭司Data.asset.meta new file mode 100644 index 0000000..afdfadc --- /dev/null +++ b/Assets/Resources/Data/荒野祭司Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: Dy5J4Sz4U33xNEhGru9vLoE9K2C2Q5adeWt5AKQebfBmRrooHe3seZ4= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/蓝色怪物Data.asset b/Assets/Resources/Data/蓝色怪物Data.asset new file mode 100644 index 0000000..5762b9c --- /dev/null +++ b/Assets/Resources/Data/蓝色怪物Data.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:yousandi.cn,2023: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6769361b152df4efb933934b84a6e673, type: 3} + m_Name: "\u84DD\u8272\u602A\u7269Data" + m_EditorClassIdentifier: + characterId: "\u84DD\u8272\u602A\u7269" + characterName: "\u84DD\u8272\u602A\u7269" + description: + cardIcon: {fileID: 0} + unitPrefab: {fileID: 0} + manaCost: 1 + cooldownTime: 1 + baseMaxHealth: 170 + baseAttackPower: 22 + baseMoveSpeed: 4 + healthPerLevel: 8.5 + attackPerLevel: 1.1 + moveSpeedPerLevel: 0 diff --git a/Assets/Resources/Data/蓝色怪物Data.asset.meta b/Assets/Resources/Data/蓝色怪物Data.asset.meta new file mode 100644 index 0000000..0262b60 --- /dev/null +++ b/Assets/Resources/Data/蓝色怪物Data.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: CnMW5HmpVn3ayXpsd9VMaWG3vTH2N5eHh1G1ZIzRq7z/nUwsh/6fi7Y= +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Chapter1/Level1-1.scene b/Assets/Scenes/Chapter1/Level1-1.scene index 5f0660b..380a20e 100644 --- a/Assets/Scenes/Chapter1/Level1-1.scene +++ b/Assets/Scenes/Chapter1/Level1-1.scene @@ -3000,6 +3000,53 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 784281426} m_CullTransparentMesh: 1 +--- !u!1 &809606703 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 809606705} + - component: {fileID: 809606704} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: LevelWaveManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &809606704 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809606703} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f42313cb230bc154a84940967a3592af, type: 3} + m_Name: + m_EditorClassIdentifier: + levelConfigJson: {fileID: 4900000, guid: a2f345e588202bc4f83cb4bf2eea0e33, type: 3} + playerTransform: {fileID: 1830287376} +--- !u!4 &809606705 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 809606703} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &822345006 PrefabInstance: m_ObjectHideFlags: 0 @@ -7829,3 +7876,4 @@ SceneRoots: - {fileID: 400225625} - {fileID: 1039023784} - {fileID: 1143280517} + - {fileID: 809606705} diff --git a/Assets/Script/LevelConfig.cs b/Assets/Script/LevelConfig.cs new file mode 100644 index 0000000..5a7c9f6 --- /dev/null +++ b/Assets/Script/LevelConfig.cs @@ -0,0 +1,28 @@ +using System; +using UnityEngine; + +[Serializable] +public class LevelConfig +{ + public string levelId; + public string levelName; + public int difficulty; + public WaveConfig[] waves; +} + +[Serializable] +public class WaveConfig +{ + public int waveIndex; + public float triggerZPosition; + public EnemyConfig[] enemies; +} + +[Serializable] +public class EnemyConfig +{ + public string characterDataId; + public int count; + public int level; + public Vector3[] spawnPositions; +} diff --git a/Assets/Script/LevelConfig.cs.meta b/Assets/Script/LevelConfig.cs.meta new file mode 100644 index 0000000..1e736de --- /dev/null +++ b/Assets/Script/LevelConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: DCkbtyqsAS0XWDbnV6b28+qtK9fqumatNN8sVAc+ET/07NEWJo3Gdhc= +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/LevelWaveManager.cs b/Assets/Script/LevelWaveManager.cs new file mode 100644 index 0000000..34c0bfb --- /dev/null +++ b/Assets/Script/LevelWaveManager.cs @@ -0,0 +1,124 @@ +using System.Collections.Generic; +using UnityEngine; + +public class LevelWaveManager : MonoBehaviour +{ + [Header("关卡配置")] + public TextAsset levelConfigJson; + + [Header("资源引用")] + public Transform playerTransform; + + private LevelConfig levelConfig; + private List waveSpawners = new List(); + private Dictionary characterDataCache = new Dictionary(); + + private void Start() + { + if (playerTransform == null) + { + var mainChar = FindObjectOfType(); + if (mainChar != null) + { + playerTransform = mainChar.transform; + } + } + + if (levelConfigJson != null) + { + LoadLevelConfig(); + CreateWaveSpawners(); + } + else + { + Debug.LogError("LevelWaveManager: 未配置关卡 JSON 文件!"); + } + } + + private void LoadLevelConfig() + { + try + { + levelConfig = JsonUtility.FromJson(levelConfigJson.text); + Debug.Log($"加载关卡配置:{levelConfig.levelName},共 {levelConfig.waves.Length} 波"); + } + catch (System.Exception e) + { + Debug.LogError($"解析关卡配置失败:{e.Message}"); + } + } + + private void CreateWaveSpawners() + { + if (levelConfig == null || levelConfig.waves == null) + { + return; + } + + foreach (var waveConfig in levelConfig.waves) + { + GameObject spawnerObj = new GameObject($"WaveSpawner_Wave{waveConfig.waveIndex}"); + spawnerObj.transform.SetParent(transform); + spawnerObj.transform.position = new Vector3(0, 0, waveConfig.triggerZPosition + 5f); // 生成点在触发点后方5米 + + WaveSpawner spawner = spawnerObj.AddComponent(); + spawner.triggerZPosition = waveConfig.triggerZPosition; + spawner.autoStart = false; + + // 构建 WaveSpawner.Wave 数据 + WaveSpawner.Wave wave = new WaveSpawner.Wave(); + wave.waveName = $"第{waveConfig.waveIndex}波"; + + List enemyPrefabs = new List(); + List spawnPositions = new List(); + + foreach (var enemyConfig in waveConfig.enemies) + { + CharacterData characterData = LoadCharacterData(enemyConfig.characterDataId); + if (characterData == null) + { + Debug.LogError($"找不到角色数据:{enemyConfig.characterDataId}"); + continue; + } + + // 根据配置生成多个敌人 + for (int i = 0; i < enemyConfig.count; i++) + { + enemyPrefabs.Add(characterData.unitPrefab); + + Vector3 spawnPos = (i < enemyConfig.spawnPositions.Length) + ? enemyConfig.spawnPositions[i] + : new Vector3(i * 2f, 0, 0); // 默认横向排列 + + spawnPositions.Add(spawnPos); + } + } + + wave.enemyPrefabs = enemyPrefabs.ToArray(); + wave.spawnPositions = spawnPositions.ToArray(); + wave.spawnDelay = 0.5f; + + spawner.waves = new WaveSpawner.Wave[] { wave }; + + waveSpawners.Add(spawnerObj); + + Debug.Log($"创建 WaveSpawner:波次{waveConfig.waveIndex},触发位置 Z={waveConfig.triggerZPosition},敌人数量={enemyPrefabs.Count}"); + } + } + + private CharacterData LoadCharacterData(string characterDataId) + { + if (characterDataCache.ContainsKey(characterDataId)) + { + return characterDataCache[characterDataId]; + } + + CharacterData data = Resources.Load($"Data/{characterDataId}"); + if (data != null) + { + characterDataCache[characterDataId] = data; + } + + return data; + } +} diff --git a/Assets/Script/LevelWaveManager.cs.meta b/Assets/Script/LevelWaveManager.cs.meta new file mode 100644 index 0000000..1ddec48 --- /dev/null +++ b/Assets/Script/LevelWaveManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: WX4dtiuuACkF8KQIrcpLS+QVWeg7vbjkYIAMFyJkofFDHGwm0GC1MPg= +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/WorldHealthBar.cs b/Assets/Script/WorldHealthBar.cs index eaffb9c..726febe 100644 --- a/Assets/Script/WorldHealthBar.cs +++ b/Assets/Script/WorldHealthBar.cs @@ -75,11 +75,20 @@ public class WorldHealthBar : MonoBehaviour maxEnergy = Mathf.Max(1f, maxEnergy); currentEnergy = Mathf.Clamp(currentEnergy, 0f, maxEnergy); CalculateLayout(); - CreateBar(); + CreateBar(); // 创建血条 UI 结构,但颜色在 Start() 中设置 UpdateFill(); UpdateEnergyFill(); } + // 在 Start() 中根据最终标签设置血条颜色,确保 Instantiate 后的标签修改生效。 + private void Start() + { + if (fillImage != null) + { + fillImage.color = GetHealthFillColor(); + } + } + // 每帧让血条保持在单位头顶,并朝向主摄像机。 private void LateUpdate() { @@ -339,7 +348,8 @@ public class WorldHealthBar : MonoBehaviour Image background = CreateImage("Border", healthRow, RoundedSprite(), borderColor); SetFullRect(background.rectTransform); - Image inner = CreateImage("Fill", healthRow, RoundedSprite(), GetHealthFillColor()); + // 创建填充 Image,颜色暂时使用默认绿色,在 Start() 中根据最终标签设置 + Image inner = CreateImage("Fill", healthRow, RoundedSprite(), Color.green); inner.rectTransform.anchorMin = Vector2.zero; inner.rectTransform.anchorMax = Vector2.one; inner.rectTransform.offsetMin = new Vector2(2f, 2f); diff --git a/Assets/UI/角色头像/弓箭猎人.png.meta b/Assets/UI/角色头像/弓箭猎人.png.meta new file mode 100644 index 0000000..c69fe74 --- /dev/null +++ b/Assets/UI/角色头像/弓箭猎人.png.meta @@ -0,0 +1,177 @@ +fileFormatVersion: 2 +guid: XClKsiKlVHznnBNtw8s6BBnVmJM2ED7iasLkQ/LeEQ6v3b6xDNGf1fk= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/角色头像/石巨人.png b/Assets/UI/角色头像/石巨人.png new file mode 100644 index 0000000..d5db124 Binary files /dev/null and b/Assets/UI/角色头像/石巨人.png differ diff --git a/Assets/UI/角色头像/石巨人.png.meta b/Assets/UI/角色头像/石巨人.png.meta new file mode 100644 index 0000000..f1fc797 --- /dev/null +++ b/Assets/UI/角色头像/石巨人.png.meta @@ -0,0 +1,177 @@ +fileFormatVersion: 2 +guid: CCsZvSyoUH703h3RgbyErofxVpRCMKrFBmurJsQ3EQ4fT1tJLX5p1jc= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/角色头像/荒野狼人.png b/Assets/UI/角色头像/荒野狼人.png new file mode 100644 index 0000000..de38ec1 Binary files /dev/null and b/Assets/UI/角色头像/荒野狼人.png differ diff --git a/Assets/UI/角色头像/荒野狼人.png.meta b/Assets/UI/角色头像/荒野狼人.png.meta new file mode 100644 index 0000000..420801a --- /dev/null +++ b/Assets/UI/角色头像/荒野狼人.png.meta @@ -0,0 +1,177 @@ +fileFormatVersion: 2 +guid: B3gX4X6oUi48R1BukHp9wxCfN3U5kflDEYvf9c3kIcTrnhcQQHz0TQk= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/角色头像/荒野祭祀.png.meta b/Assets/UI/角色头像/荒野祭祀.png.meta new file mode 100644 index 0000000..7fdbbfb --- /dev/null +++ b/Assets/UI/角色头像/荒野祭祀.png.meta @@ -0,0 +1,177 @@ +fileFormatVersion: 2 +guid: DnMetnmsBi41ONBTlFKmYEqD7C9teOPwWIhxGL5HqUzBuqrLw3bOPIo= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/角色头像/蓝色怪物.png b/Assets/UI/角色头像/蓝色怪物.png new file mode 100644 index 0000000..ce32e31 Binary files /dev/null and b/Assets/UI/角色头像/蓝色怪物.png differ diff --git a/Assets/UI/角色头像/蓝色怪物.png.meta b/Assets/UI/角色头像/蓝色怪物.png.meta new file mode 100644 index 0000000..ed2d6e8 --- /dev/null +++ b/Assets/UI/角色头像/蓝色怪物.png.meta @@ -0,0 +1,177 @@ +fileFormatVersion: 2 +guid: CykesSioAnmxCgH+CXbo+1uS/5ELwDsbMiSYCzfGRYmKLU1FTyK/7zw= +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 14 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + webStreaming: 0 + priorityLevel: 0 + uploadedMode: 2 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WeixinMiniGame + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: PlayableAds + maxTextureSize: 2048 + maxPlaceholderSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + doOverrideTextureManagerOperations: 0 + platformOperationGroupSettings: + userData: + assetBundleName: + assetBundleVariant: diff --git a/CODELY.md b/CODELY.md index 4f7dd5c..c595116 100644 --- a/CODELY.md +++ b/CODELY.md @@ -40,6 +40,7 @@ - [2026-09-10 11:03:00] 第一章第一关地图(Level1-1.scene)已完成:120单位长地图(Z: -24到96),使用用户自制的6类真实3D模型装饰(石墙/木栅栏/旗帜/木箱/石柱/碎石堆),共34个物体分布在左右装饰带和3个波次标记位置。摄像机设置为2.5D视角(位置0,18,-5,旋转43°)。**Why:** 地图基础结构已完成,可以开始添加战斗逻辑和敌人生成器。**How to apply:** 后续关卡可复制此场景作为模板,调整装饰布局即可。 - [2026-09-10 18:38:13] 第一关地图(Level1-1.scene)已采用"皇室战争"风格简化设计:移除所有边界矮墙(俯视角只能看到墙顶),改用旗帜+石柱交替排列标识边界(X=±5.5,Z轴8个位置交替);保留中间战道掩体(木箱×6、碎石堆×4);天空改为纯色蓝灰色+线性雾效(起始40m,结束100m);摄像机添加边界Clamp限制(X: -7~7, Z: -32~93,宽松模式),主角靠近边界时摄像机停止跟随;光照调整为从后上方照射(50°, 0°, 0°),角色正面清晰可见。**Why:** 正交俯视视角下垂直墙面几乎看不见(只能看到墙顶),旗帜+石柱有高度和轮廓,视觉识别强。**How to apply:** 后续关卡延续此风格,避免使用低矮平面装饰物。 - [2026-09-10 18:38:32] 召唤逻辑已优化碰撞处理:当目标位置被占用时,自动螺旋搜索周围空位(左右搜索8次×前后3层×2方向,约102个候选点);如果所有位置都被占用,自动退还能量豆并取消召唤,避免浪费能量。参数:summonSearchCount=8, summonDepthSearchCount=3, summonSearchStep=0.8f, summonDepthSearchStep=1f。 +- [2026-09-11 14:55:27] 敌人血条颜色问题已修复:WorldHealthBar 在 Awake() 时根据 GameObject.tag 判断颜色,WaveSpawner 在 Instantiate() 后设置标签会导致时序错误(血条已创建成绿色)。解决方案:直接在敌人 Prefab 上设置 Enemy 标签,确保 Awake() 时标签已正确。已修改狼人/蓝色怪物/弓箭猎人/石巨人四个 Prefab。**Why:** 血条颜色在对象创建时确定,后设置标签无法自动刷新。**How to apply:** 后续新增敌人 Prefab 时直接在 Prefab 上设置 Enemy 标签,不依赖运行时代码设置。 ### Reference - [2026-09-09 12:23:17] 飞行物脚本 Projectile.cs 负责锁敌追踪、碰撞检测和伤害结算。箭矢预制体 ArrowProjectile_White.prefab 已配置 Projectile 组件和 CapsuleCollider(Is Trigger)。远程单位需在攻击动画松弦帧添加 OnAttackEffect Event,并在 UnitBase 中设置 attackType=RangedProjectile、projectilePrefab、projectileSpawnPoint。