#if GRAPH_DESIGNER
using Opsive.BehaviorDesigner.Runtime.Tasks;
using Opsive.BehaviorDesigner.Runtime.Tasks.Conditionals;
using BaseGames.Enemies;
namespace BaseGames.Enemies.AI
{
///
/// BD Conditional:检查玩家是否在指定范围内。
/// 成功/失败直接驱动 BT 分支选择(Selector / Sequence 节点)。
///
public class BD_IsPlayerInRange : Conditional
{
/// 检测范围(Inspector 可配置,默认 6 米)。
public float Range = 6f;
private EnemyBase _enemy;
public override void OnStart()
{
_enemy = GetComponent();
}
public override TaskStatus OnUpdate()
{
if (_enemy == null) return TaskStatus.Failure;
return _enemy.IsPlayerInRange(Range) ? TaskStatus.Success : TaskStatus.Failure;
}
}
}
#endif