2023-10-11 20:26:45 +00:00
|
|
|
using UnityEngine;
|
2023-10-16 07:27:29 +00:00
|
|
|
using UnityEngine.AI;
|
2023-10-11 20:26:45 +00:00
|
|
|
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
|
|
namespace BlueWaterProject
|
|
|
|
{
|
|
|
|
public interface IAiView
|
|
|
|
{
|
2023-10-16 07:27:29 +00:00
|
|
|
NavMeshAgent Agent { get; set; }
|
2023-10-11 20:26:45 +00:00
|
|
|
float ViewRadius { get; set; }
|
2023-10-16 07:27:29 +00:00
|
|
|
float AtkRange { get; set; }
|
|
|
|
Vector3 DefensePos { get; set; }
|
|
|
|
bool IsRandomMove { get; set; }
|
|
|
|
float RandomMoveRange { get; set; }
|
2023-10-11 20:26:45 +00:00
|
|
|
Collider[] Targets { get; set; }
|
|
|
|
Collider Target { get; set; }
|
|
|
|
LayerMask TargetLayer { get; set; }
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 가장 가까운 타겟을 찾아 Target에 적용
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="targetIsTrigger">IsTrigger Collider를 대상으로 삼을지 확인</param>
|
|
|
|
public void FindNearestTargetInRange(bool targetIsTrigger = true);
|
2023-10-16 07:27:29 +00:00
|
|
|
public void SetTarget(Collider value);
|
|
|
|
public bool IsTargetWithinRange();
|
|
|
|
public bool GoOutOfBounds();
|
|
|
|
public void MoveTarget(Vector3 targetPos, ESpeedType speedType, float stopDistance);
|
2023-10-11 20:26:45 +00:00
|
|
|
}
|
|
|
|
}
|