feat(buildings): 添加金矿建筑功能并优化建筑健康系统

- 为兵营和金矿添加伤害数字显示功能,包括持续时间、上升高度等参数
- 将金矿脚本重构为GoldMine组件,实现定时产出金币机制
- 为所有单位添加NavMeshAgent组件以支持导航寻路
- 为弓箭手、法师等单位添加分离半径和目标扩散参数
- 为建筑添加碰撞体和标签设置
- 修复当前能量字段命名规范(currentEnergy -> _currentEnergy)
- 调整金矿健康值从100提升至500
- 统一伤害数字显示相关属性配置
```
This commit is contained in:
huadexuan committed 2026-09-15 21:13:44 +08:00
1 parent 27df2aa8b1
commit 1cdb7c3910
22 files changed
+804 -55

No files matched your search

+37 -9
View File
@@ -29,19 +29,47 @@
- 进攻路线根据关卡设计分为 1 路、2 路或 3 路。
- 单位从己方区域向敌方区域推进,并在路线上寻找最近的有效目标。
### 2.2 寻路
### 2.2 寻路(已实现 ✅)
当前单位主要沿直线移动,后续需要加入自动寻路能力。
**当前状态:**
- 已接入 Unity NavMesh 自动寻路系统
- 单位可以自动绕过障碍物和地形
- 支持左右两路地图布局
- 寻路性能已优化(路径更新频率限制为 0.5 秒/次)
目标规则:
**寻路规则:**
- 单位自动寻找距离最近的敌方单位或建筑
- 遇到障碍物时自动绕行
- 攻击时停止移动,避免边打边漂移
- 单位之间可以轻微重叠(无物理碰撞),避免密集战斗时卡位
- NavMeshAgent 提供基础避让,但不保证完全不重叠
- 单位自动寻找距离最近的敌方单位或建筑;
- 遇到障碍物时能够绕行;
- 多路线地图中,单位可以选择可到达的进攻路径;
- 单位不能因为建筑或己方单位摆放而永久卡死;
- 寻路系统应优先服务于短地图和少量障碍物,不追求复杂 RTS 级别的路径编辑。
**技术细节:**
- 使用 NavMeshAgent 替代 CharacterController 移动
- 攻击时禁用 NavMeshAgent,防止漂移
- 移动时重新启用 NavMeshAgent
- 攻击距离判定增加 1.5 米缓冲,避免单位互相顶到才攻击
具体采用 Unity NavMesh 还是轻量级多路线方案,待实现阶段确认。
### 2.3 伤害数字反馈(已实现 ✅)
**当前状态:**
- 单位受击时头顶弹出伤害数字
- 8 方向黑色描边 + 彩色主字,清晰可见
- 根据受击者阵营显示不同颜色和浮动方向
**显示规则:**
| 情况 | 数字颜色 | 浮动方向 | 说明 |
|------|---------|---------|------|
| 友方单位受伤 | 红色 | 向下 | 玩家的士兵被敌人攻击 |
| 敌方单位受伤 | 白色 | 向上 | 敌人被玩家的士兵攻击 |
| 任何单位治疗 | 绿色 | 向上 | 单位被治疗恢复生命值 |
**技术细节:**
- 每个伤害数字由 9 个 TextMesh 组成(1 个彩色主字 + 8 个黑色描边)
- 描边宽度统一为 0.025,所有角色一致
- 伤害数字持续 0.8 秒,带缩放和淡出动画
- 同时最多显示 60 个伤害数字,防止极端情况刷屏
## 三、主角定位