#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