feat(enemy): AiStateFragments 建态原语,新增 AbilityOnce 修死亡态重触发隐患
从 PerceptionStateMachine 的 private static 辅助方法提升为公开原语,供后续 模块化重构(骨架+可插拔模块)与定制 AiScript 复用。新增 AbilityOnce: 只在进入时触发能力、不每帧重触发,修复用 Ability() 驱动死亡态时演出播完 被 Tick 无限重播的隐患(现有 PerceptionStateMachine 因 E001 死亡能力 id 为空未暴露,本次不改它,留待 T11 整体退役)。
This commit is contained in:
@@ -11,9 +11,11 @@ namespace BaseGames.Tests.EditMode.AI
|
||||
public bool IsMoving { get; set; }
|
||||
public void SetMode(LocomotionMode mode) { CurrentMode = mode; Calls.Add("SetMode:" + mode); }
|
||||
public void Approach(Transform t) { CurrentMode = LocomotionMode.Approach; Calls.Add("Approach"); }
|
||||
public void Pursue(Vector2 p) { CurrentMode = LocomotionMode.Approach; Calls.Add("Pursue"); }
|
||||
public Vector2 PursuedTo;
|
||||
public void Pursue(Vector2 p) { PursuedTo = p; CurrentMode = LocomotionMode.Approach; Calls.Add("Pursue"); }
|
||||
public void MoveTo(Vector2 p) { Calls.Add("MoveTo"); }
|
||||
public void Face(Vector2 p) { CurrentMode = LocomotionMode.Face; Calls.Add("Face"); }
|
||||
public Vector2 FacedAt;
|
||||
public void Face(Vector2 p) { FacedAt = p; CurrentMode = LocomotionMode.Face; Calls.Add("Face"); }
|
||||
public void Stop() { CurrentMode = LocomotionMode.Idle; Calls.Add("Stop"); }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user