该项目是一个基于 Unity 引擎的近战战斗系统,包含完整的敌人 AI 行为逻辑、玩家战斗控制、动画状态管理及战斗交互机制。系统设计采用状态机模式实现敌人行为切换,支持多种攻击方式、连击机制、反击判定和敌人协同警戒等功能。
- 支持多种攻击类型(左手、右手、左脚、右脚、剑)
- 攻击动画与 hitbox 同步控制
- 连击机制与攻击冷却管理
- 伤害计算与受击反馈
- 反击判定与执行系统
- 状态机管理(Idle/CombatMovement/Attack/RetreatAfterAttack/Dead/GettingHit)
- 视野感知与目标检测
- 战斗移动(追逐 / 环绕 /idle 状态切换)
- 群体警戒机制(敌人间信息共享)
- 攻击决策系统(选择最优攻击时机)
- 第三人称视角移动
- 战斗模式切换与目标锁定
- 攻击与反击操作
- 相机跟随与视角控制
Scripts/
├── Combat System/ # 战斗核心系统
│ ├── AttackData.cs # 攻击数据配置
│ ├── CombatController.cs # 战斗控制器
│ └── MeeleFighter.cs # 近战战斗者基类
├── Enemy/ # 敌人相关
│ ├── EnemyController.cs # 敌人控制器
│ ├── EnemyManager.cs # 敌人管理器
│ ├── VisionSensor.cs # 视野传感器
│ └── States/ # 敌人状态机
│ ├── IdleState.cs
│ ├── CombatMovementState.cs
│ ├── EnemyAttackState.cs
│ ├── RetreatAfterAttackState.cs
│ ├── DeadState.cs
│ └── GettingHitState.cs
└── Player/ # 玩家相关
├── PlayerController.cs # 玩家控制器
└── CameraController.cs # 相机控制器
- 确保安装 Unity 2019.4 或更高版本
- 克隆或下载项目到本地
- 在 Unity 中打开项目
- 确保已设置 NavMesh(用于敌人导航)
- 配置输入管理器(攻击、锁定目标等按键)
- 移动:使用 WASD 或方向键
- 攻击:按下攻击键(默认 "Attack")
- 锁定目标:按下锁定键(默认 "LockOn")
- 反击:在敌人攻击前摇时按下攻击键
- 采用状态机模式,使敌人行为逻辑清晰可扩展
- 攻击数据使用 ScriptableObject 管理,便于配置多种攻击
- 分离战斗逻辑与动画控制,提高代码可维护性
- 敌人间的协同警戒系统,增强战斗挑战性
- 相机视角与战斗状态联动,提升沉浸感
- 需为敌人和玩家设置正确的碰撞体与层
- 动画控制器需包含指定参数(forwardSpeed、strafeSpeed 等)
- 确保所有攻击动画已正确设置动画事件或时间点
- 敌人导航需要烘焙 NavMesh 表面
- 增加武器切换系统
- 实现更复杂的敌人行为树
- 添加技能系统与能量管理
- 增加战斗评分与奖励机制