feat(enemy): IEnemyLocomotion 增加 Pursue 寻路逼近原语(RunSpeed)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user