feat(enemy): IEnemyLocomotion 增加 Pursue 寻路逼近原语(RunSpeed)

This commit is contained in:
2026-07-24 12:23:43 +08:00
parent 6fd80cfec9
commit 297f9d2968
3 changed files with 14 additions and 0 deletions
@@ -16,6 +16,7 @@ namespace BaseGames.AI
{
void SetMode(LocomotionMode mode); // Idle(停) / Patrol(按配置策略游走)
void Approach(Transform target); // 持续跟随,派生 RunSpeed
void Pursue(Vector2 target); // 寻路逼近(RunSpeed):每帧朝 target 重寻路(底层防抖)
void MoveTo(Vector2 point); // 一次性目标点
void Face(Vector2 lookAt); // 停 + 朝向
void Stop();
@@ -84,6 +84,18 @@ namespace BaseGames.Enemies
_enemy?.MoveTo(point);
}
/// <summary>
/// 寻路逼近:设 Approach 模式 + RunSpeed,每帧朝 target 发一次寻路请求(底层 Nav 自带防抖/受阻/NavLink)。
/// 与一次性 <see cref="MoveTo"/> 的区别:设跑速、语义为"持续追向移动目标"。供 AI 追击态每帧调用。
/// </summary>
public void Pursue(Vector2 target)
{
_mode = LocomotionMode.Approach;
_approachTarget = null;
if (_enemy?.Stats != null) _enemy.Nav?.SetSpeed(_enemy.Stats.RunSpeed);
_enemy?.MoveTo(target);
}
public void Face(Vector2 lookAt)
{
_mode = LocomotionMode.Face;