using System; using Colosseum.Enemy; using Unity.Behavior; using Unity.Properties; using UnityEngine; using Action = Unity.Behavior.Action; /// /// 현재 타겟이 보스의 공격 사거리 안에 있는지 확인하는 공통 체크 액션입니다. /// [Serializable, GeneratePropertyBag] [NodeDescription( name: "Check Target In Attack Range", story: "[Target]이 보스 공격 사거리 안에 있는지 확인", category: "Action", id: "16821bba281d49f699d1ac9ec613dcce")] public partial class CheckTargetInAttackRangeAction : Action { [SerializeReference] public BlackboardVariable Target; protected override Status OnStart() { if (Target?.Value == null) return Status.Failure; EnemyBase enemyBase = GameObject.GetComponent(); float attackRange = enemyBase != null && enemyBase.Data != null ? enemyBase.Data.AttackRange : 2f; float distance = Vector3.Distance(GameObject.transform.position, Target.Value.transform.position); return distance <= attackRange + 0.25f ? Status.Success : Status.Failure; } }