NavMeshAgent
NavMesh위에서 경로를 계산하고 이동하는데 사용된다.
NavMesh는 이동가능한 경로를 나타내며 NavMeshAgent는 이 경로를 이동할 수 있도록 도와준다.
프로퍼티
01 destination
NavMeshAgent가 이동하려는 목적지 위치
(SetDestination()를 사용하여 목적지를 설정하거나 GetDestination()을 사용하여 현재 설정된 목적지를 가져올 수 있다.)
public Vector3 destination;
02 speed
NavMeshAgent의 이동속도를 설정하거나 가져올 수 있다.
public float speed;
03 angularSpeed
NavMeshAgent의 회전속도를 설정하거나 가져올 수 있다.
public float angularSpeed;
04 stoppingDistance
NavMeshAgent가 목적지에 도달하기 전에 멈추리는 거리를 설정하거나 가져올 수 있다.
public float stoppingDistance;
05 isStopped
NavMeshAgent의 동작을 멈출지 여부를 설정할 수 있다.
public bool isStopped;
06 pathPending
NavMeshAgent가 현재 경로 계산을 진행중인지를 나타낸다.
true : 아직 경로를 찾는 중이므로 이동이 시작되지 않았거나 경로를 완전히 따라가지 않은 상태이다.
false : 경로 계산을 완룧여 이동을 시작하거나 이동중인 상태이다.
public bool pathPending;
07 remainingDistance
NavMeshAgent가 목적지까지 남은 거리를 나타낸다.
0보다 작을경우 : 목적지에 도착
0모다 클 경우 : 목적지에 아직 도착 안함
public float remainingDistance;
NavMeshHit
public struct NavMeshHit
{
public Vector3 position { get; set; }
public Vector3 normal { get; set; }
public float distance { get; set; }
public int mask { get; set; }
public bool hit { get; set; }
}
NavMesh위에서 특정 지점의 유효한 위치를 찾거나 다른 NavMeshAgnet와의 충돌 검사 결과를 저장하기 위해 사용되는 구조체이다. 유효한 위치는 NavMesh위에 있어야하고 이동가능한 영역내에 있어야한다. 예를 들어 장애물이나 차단된 영역에서는 유효한 위치가 아니다.
메서드
01 SetDestination
NavMeshAgent의 이동 목적지를 설정한다. 이동을 시작하려면 목적지를 설정한 후 NavMeshAgent를 활성화하면 된다.
public bool SetDestination(Vector3 target);
02 SamplePosition
NavMesh위에서 특정 지점으로부터 가장 가까운 유효한 위치를 찾는다.
public static bool SamplePosition(Vector3 sourcePosition, out NavMeshHit hit, float maxDistance, int areaMask);
매개변수
sourcePosition : NavMesh위에 유요한 위치를 찾을 기준이 되는 지점의 위치
hit : 유효한 위치를 찾았을때 그 정보를 저장하는 NavMeshHit 구조체
maxDistance : NavMeshAgent가 유효한 위치를 찾기 위해 탐색할 최대 거리
areaMask : NavMeshAgent가 유효한 위치를 찾기 위해 검색할 영역을 나타내는 매개변수
03 SetPath
NavMeshAgnet가 따라갈 경로
public bool SetPath(AI.NavMeshPath path);
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - 3D모드 2D로 바꾸는 법 (0) | 2023.08.16 |
---|---|
Unity - NavMeshAgent를 사용해서 게임오브젝트를 랜덤으로 움직여보기 (0) | 2023.08.02 |
Unity - SerializationException: Type 'UnityEngine.MonoBehaviour' in Assembly 'UnityEngine.CoreModule 에러 고치는 법 (0) | 2023.08.02 |
Unity - NPC클릭하면 플레이어 쳐다보게 하는 법 (0) | 2023.07.21 |
Unity - Scene이동 후 Player가 떠 있는 경우, 바닥에 있지 않는 경우 (0) | 2023.07.18 |
댓글