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);
}
}