using UnityEngine; using UnityEngine.AI; // ReSharper disable once CheckNamespace namespace BlueWaterProject { public interface IView { /// /// 시야 사거리 /// float ViewRadius { get; set; } /// /// 공격 사거리 /// float AtkRange { get; set; } /// /// 주변의 모든 타겟 /// Collider[] Targets { get; set; } /// /// 현재의 타겟 /// Collider Target { get; set; } /// /// 타겟으로 삼을 레이어 /// LayerMask TargetLayer { get; set; } /// /// 가장 가까운 타겟을 찾아 Target에 적용 /// /// 주변을 검색할 때의 중심이 되는 위치 /// 타겟의 Collider IsTrigger 상태 여부 public void FindNearestTargetInRange(Vector3 centerPos, bool targetIsTrigger = true); /// /// 현재 Target으로 삼을 대상 설정 /// /// Target의 Collider public void SetTarget(Collider value); /// /// 타겟의 특정 거리 내에 있는지 확인 /// /// 주변을 검색할 때의 중심이 되는 위치 /// 특정 사거리(공격 사거리 등) /// public bool IsTargetWithinRange(Vector3 centerPos, float range); /// /// 타겟으로 이동하는 함수 /// /// 타겟의 위치 /// 이동할 때의 속도 /// Agent를 사용할 경우의 멈추는 거리 public void MoveTarget(Vector3 targetPos, float speed, float stopDistance = float.MaxValue); } }