using System; using Colosseum.Combat; using UnityEngine; using Unity.Behavior; using Unity.Properties; using Condition = Unity.Behavior.Condition; namespace Colosseum.AI.BehaviorActions.Conditions { /// /// 타겟이 지정된 거리 내에 있는지 확인합니다. /// [Serializable, GeneratePropertyBag] [NodeDescription(name: "Is In Range", story: "Is [Target] within [Range] distance", category: "Combat")] public partial class IsInRangeCondition : Condition { [SerializeReference] public BlackboardVariable Target; [SerializeReference] public BlackboardVariable Range = new BlackboardVariable(2f); public override bool IsTrue() { if (Target.Value == null) { return false; } float distance = TargetSurfaceUtility.GetHorizontalSurfaceDistance(GameObject.transform.position, Target.Value); return distance <= Range.Value; } } }