根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:

```
docs(readme): 更新文档说明

- 添加项目使用指南
- 完善API接口说明
- 修正错误的配置示例
```

注意:由于您提供的code differences部分为空,以上是一个示例模板。当您有具体的代码变更时,请提供详细的变更内容以便生成更准确的commit message。
This commit is contained in:
huadexuan committed 2026-10-02 10:04:12 +08:00
1 parent 8d58c2223c
commit 11f1af357d
191 files changed
+2315 -1539

No files matched your search

+9 -1
View File
@@ -28,6 +28,8 @@
- [2026-09-29 22:28:50] 英雄复活后不寻敌问题:需要在ReviveHero()中调用unitBase.ResetAnchorPosition()重置锚点位置,否则returnToAnchorWhenIdle=true的英雄会尝试返回旧锚点位置导致卡住
- [2026-10-01 15:45:16] UnitBase动画速度问题:攻击时会设置animator.speed来调整攻击动画速度,但攻击结束后必须在Alert状态和ReturnToAnchor中重置为1.0,否则会导致后续移动动画变慢
- [2026-10-01 15:45:27] 投射物方向问题:使用transform.Translate(Vector3.forward)的投射物必须在Instantiate时计算正确的旋转Quaternion.LookRotation(direction),否则会朝默认方向飞行。已在UnitBase.FireProjectile和FireSkillProjectile中修复
- [2026-10-02 00:03:51] Do NOT manually instantiate stun VFX in skill scripts like StoneGolemSkill.cs — UnitBase.ApplyAreaStun() handles it internally when the prefab reference is set in Inspector. Keep skill scripts minimal: just call ApplyAreaSkillDamage and ApplyAreaStun
- [2026-10-02 00:03:51] UnitBase fields: use unit.Camp (property), unit.IsAlive (property), NOT unit.camp or unit.isAlive (do not exist). StatusEffectController is private — access stun logic through public UnitBase methods only
### Project
- [2026-08-28 14:26:56] 弓箭手远程箭矢的设计要求:保持发射时高度水平飞行,命中目标后直接结算伤害并销毁,不产生实体物理击退。**Why:** 当前玩法希望远程攻击是命中判定而非物理推动。**How to apply:** 后续调整箭矢、Projectile 或弓箭手攻击逻辑时保持这一行为。
@@ -102,7 +104,8 @@
- [2026-09-26 19:59:00] 2026-09-26 用户反馈第一关波次问题待修:敌人生成位置过靠前,需要移到摄像机视野外再走入;己方英雄击杀目标后会原地待机而不回初始位置,并偶发无播放移动动画却发生平移,疑似 UnitBase 状态切换/NavMeshAgent 与 root motion 协调问题。
- [2026-09-26 23:03:24] 2026-09-26 弓箭手走路动画变慢修复:Assets/Prefabs/第一章/弓箭手.prefab 的 Animator applyRootMotion 已对齐为 true;UnitBase.FinishAttack() 改为攻击结束强制 animator.speed=1,避免攻击动画按 attackDuration 调速后污染走路动画;StatusEffectController 眩晕结束恢复 UnitBase.AttackSpeedMultiplier 或无 UnitBase 时恢复1。编辑态编译通过,尚未自动进入 Play Mode 验证。
- [2026-09-26 23:25:29] 2026-09-26 角色生成统一规则:波次小怪采用简洁Q版低模模型,与玩家收集型英雄区分;必须严格正面/A-Pose、头部独立于躯干且保留短脖子、头/躯干/双臂/双腿/双脚彼此分离、关节清晰以便Mixamo绑定;角色图片不生成武器,武器由Unity单独挂载;角色使用主体色+少量识别色并保持清晰辨识度,地面和背景低饱和低对比度。玩家可收集卡牌角色沿用同一套结构约束(正面/A-Pose、独立头颈、分离四肢、无内置武器、角色与环境有辨识度),但使用正常/英雄比例,不采用Q版比例。
- [2026-09-27 08:51:19] 2026-09-27 CharacterData 已规范为仅保存角色静态配置:characterId、characterName、description、cardIcon、unitPrefab、基础生命/攻击/移速和升级成长;已移除 manaCost、cooldownTime、productionInterval、buildingCost。新增 Assets/Resources/PlayerData.schema.md 说明 PlayerData.json 字段。PlayerDataManager 从本地 PlayerData.json 读取解锁角色、等级、星级和当前卡组,未来可替换为 Java 接口响应。第一章英雄基础数值已提高到明显强于普通小兵:人类士兵300/42、弓箭手220/55、盾卫700/30、法师240/100、精锐士兵520/78;小兵为城堡蓝卫Q170/22、城堡弓童150/28、城堡金盾卫360/36。编辑态编译通过。
- [2026-10-02 10:02:58] 塔防版角色基础数值:第一章英雄为人类士兵300/42、弓箭手220/55、盾卫700/30、法师240/100、精锐士兵520/78;小兵为城堡蓝卫170/22、城堡弓童150/28、城堡金盾卫360/36。城堡蓝卫的 CharacterData 资源名为 `城堡蓝卫Data`,Prefab 的 `characterDataName` 必须与之完全一致。
- [2026-09-27 15:24:49] 2026-09-27 战斗平衡规则补充:角色命中获得的技能能量/技能点应按各自技能强度单独平衡,不应统一设置;第一版可先用近似基准值跑通玩法,后续专门再平衡。用户倾向卡牌英雄初始普攻速度彼此接近(类似 MOBA 英雄起始攻速),英雄差异主要由技能机制及其充能效率体现。
- [2026-09-29 17:03:15] 英雄死亡复活系统已完成:友方英雄 WorldHealthBar.canRevive=true 防止销毁,HeroCardUI 显示20秒倒计时和广告复活按钮(2次/局),复活后满血回到出生位置
- [2026-09-29 17:03:15] 召唤师技能系统已完成:技能1群体治疗(CD 20秒,回血100),技能2全屏AOE(CD 20秒,伤害80),UI显示冷却倒计时
@@ -114,6 +117,11 @@
- [2026-09-29 23:09:29] 敌人寻敌距离:所有敌人生成脚本(WaveSpawner、DefenseWaveLevelController、EnemyCastleAI、CastleSpawnManager)在生成敌人后设置detectionRange=100f,友方英雄保持默认30f
- [2026-10-01 15:45:40] Projectile脚本支持可选爆炸效果:添加了public GameObject explosionPrefab字段,命中时如果不为null则在碰撞位置生成爆炸特效
- [2026-10-01 15:45:51] PlayerDataManager需要设置localPlayerJson引用到Resources/PlayerData.json才能正确读取保存的数据,已在FormationTest和DefenseTest场景中配置
- [2026-10-01 22:56:36] 2026-10-01 GUID灾难修复:脚本移动时漏带.cs.meta导致全项目引用断裂。修复方法——用 AssetDatabase.FindAssets 取回Unity认可的真实GUID(注意.meta文件里团结引擎存的是加密串,不可直接用),再sed批量替换asset中的旧GUID;Prefab/场景则用 GameObjectUtility.RemoveMonoBehavioursWithMissingScript 清理后按规则重新 AddComponent。
- [2026-10-01 22:56:51] 塔防版角色攻击参数基准(2026-10-01 重建后设定):近战英雄 attackRange=1,小怪/石巨人=1.5,远程(弓箭手/法师/城堡弓童/弓箭猎人)=6 且 attackType=RangedProjectile;全体 detectionRange=30。远程发射点统一为根节点下独立空物体 AttackPos,localPosition=(0,1.2,0.5),不挂骨骼以免继承动画旋转。
- [2026-10-01 22:57:06] UnitBase.IsWithinAttackReach 攻击缓冲:基础 buffer=0.2,攻击状态下再 +0.5 防状态抖动(UnitBase.cs 约530行)。buffer 过大会造成"隔空对打"——1.5 时近战实际在2.5米外就开打。
- [2026-10-01 22:57:19] DefenseWaveLevelController 生成小怪时必须显式设置 UnitTeam.teamId=1(仅设 tag="Enemy" 不够),否则 Prefab 上默认 teamId=0 会让小怪被当成友军,双方都不交战。场景中该组件的 enemyPrefabs 列表需配 4 项:castle_blue_guard_q/castle_archer/castle_gold_guard/蓝角蛮卒。
- [2026-10-02 00:03:51] Stone Golem stun VFX prefab path: Assets/Prefabs/特效/眩晕头顶星星/眩晕星星粒子.prefab — already exists, should be referenced in Stone Golem prefab Inspector for ApplyAreaStun to work
### Reference
- [2026-09-09 12:23:17] 飞行物脚本 Projectile.cs 负责锁敌追踪、碰撞检测和伤害结算。箭矢预制体 ArrowProjectile_White.prefab 已配置 Projectile 组件和 CapsuleCollider(Is Trigger)。远程单位需在攻击动画松弦帧添加 OnAttackEffect Event,并在 UnitBase 中设置 attackType=RangedProjectile、projectilePrefab、projectileSpawnPoint。