#if GRAPH_DESIGNER using UnityEngine; using Opsive.BehaviorDesigner.Runtime.Tasks; using Opsive.BehaviorDesigner.Runtime.Tasks.Actions; using BaseGames.Enemies; namespace BaseGames.Enemies.AI { /// /// BD Action:设置 AI 行为阶段()。 /// 单帧完成,返回 Success。常用于行为树中作为阶段过渡的标记节点, /// 例如在 Selector 分支开头标记当前进入了哪个阶段。 /// [TaskName("Set Ai Phase")] [TaskCategory("BaseGames/Enemy/State")] [TaskDescription("立即切换 AI 行为阶段(AiPhase),单帧返回 Success")] public sealed class BD_SetAiPhase : Action { [Tooltip("目标 AI 行为阶段")] [SerializeField] private AiPhase m_Phase = AiPhase.Idle; private EnemyBase _enemy; public override void OnAwake() => _enemy = gameObject.GetComponent(); public override TaskStatus OnUpdate() { if (_enemy == null) return TaskStatus.Failure; _enemy.SetAiPhase(m_Phase); return TaskStatus.Success; } } } #endif