#if GRAPH_DESIGNER using Opsive.BehaviorDesigner.Runtime; using Opsive.BehaviorDesigner.Runtime.Tasks; using Opsive.BehaviorDesigner.Runtime.Tasks.Actions; using BaseGames.Enemies; namespace BaseGames.Enemies.AI { /// /// BD Action:等待当前 Animancer 动画播放完毕再返回 Success。 /// 通过 EnemyBase.IsAnimationComplete 轮询(Animancer CurrentState.NormalizedTime >= 1)。 /// public class BD_WaitForAnimation : Action { private EnemyBase _enemy; public override void OnStart() { _enemy = GetComponent(); } public override TaskStatus OnUpdate() { if (_enemy == null) return TaskStatus.Failure; var state = _enemy.Animancer?.States?.Current; if (state == null) return TaskStatus.Success; // 无动画直接继续 if (state.NormalizedTime >= 1f) return TaskStatus.Success; return TaskStatus.Running; } } } #endif