#if GRAPH_DESIGNER using Opsive.BehaviorDesigner.Runtime.Tasks; using Opsive.BehaviorDesigner.Runtime.Tasks.Actions; using BaseGames.Enemies; namespace BaseGames.Enemies.AI { /// /// BD Action:Boss 切换阶段(Phase)。 /// 调用 BossBase.EnterPhase(PhaseIndex),单帧完成,返回 Success。 /// [TaskName("Enter Boss Phase")] [TaskCategory("BaseGames/Enemy/Boss")] [TaskDescription("立即切换 Boss 到目标阶段序号(单帧完成)")] public class BD_EnterPhase : Action { [UnityEngine.SerializeField] private int m_PhaseIndex = 1; private BossBase _boss; public override void OnAwake() => _boss = GetComponent(); public override void OnStart() { // 阶段切换是单帧操作,在 OnStart 完成;OnUpdate 仅汇报结果 _boss?.EnterPhase(m_PhaseIndex); } public override TaskStatus OnUpdate() { return _boss == null ? TaskStatus.Failure : TaskStatus.Success; } } } #endif