07
31

NavMeshAgent 클래스는?

Unity에서 경로 탐색 및 이동을 처리하는 데 사용되는 컴포넌트이다.

이 컴포넌트는 NavMesh 시스템과 함께 사용되어 캐릭터나 AI 요소가 특정 지점으로 이동하도록 지원한다.

주요 기능

경로 탐색
: NavMeshAgent는 내부적으로 NavMesh 시스템과 상호작용하여 가장 효율적인 경로를 탐색한다.
NavMesh는 내비게이션 맵을 구성하며, 지형, 장애물, 네비게이션 가능한 영역 등을 고려하여 경로를 계산한다.
이동 제어
: NavMeshAgent는 경로 상의 포인트를 따라 캐릭터나 AI 요소를 자동으로 이동시킨다.
이동 속도, 회전 속도, 가속도 등의 속성을 조정하여 이동 동작을 제어할 수 있다.
목표 설정
: NavMeshAgent는 목표 지점을 설정할 수 있다.
목표 지점은 NavMesh에 존재하는 영역 안에 있어야 한다.
NavMeshAgent는 자동으로 최적의 경로를 계산하고 이동한다.
도착 검사
: NavMeshAgent는 목표 지점에 도착했는지 여부를 감지할 수 있다.
도착 여부를 확인하여 적절한 액션을 수행할 수 있다.

주요 속성

speed
: 이동 속도를 조정한다. 캐릭터나 AI 요소가 이동하는 속도를 설정할 수 있다.
angularSpeed
: 회전 속도를 조정한다. 캐릭터나 AI 요소가 회전하는 속도를 설정할 수 있다.
acceleration
: 가속도를 조정한다. 캐릭터나 AI 요소의 가속도를 설정하여 부드러운 이동을 구현할 수 있다.
stoppingDistance
: 목표 지점에 도착하기 전에 멈추는 거리를 설정한다.
  이 거리에 도달하면 NavMeshAgent는 이동을 멈춘다.
autoBraking
: 자동 브레이킹 여부를 결정한다. 이 속성을 활성화하면 목표 지점에 가까워질수록 이동 속도가 감소한다.
autoRepath
: 자동 경로 재탐색 여부를 결정한다.
이 속성을 활성화하면 경로에 변경이 있을 경우 자동으로 경로를 다시 탐색한다.
updateRotation
: 회전 업데이트 방식을 결정한다.
true로 설정하면 NavMeshAgent가 자동으로 회전한다.
false로 설정하면 개발자가 직접 회전을 제어해야 한다.
updatePosition
: 위치 업데이트 방식을 결정한다.
true로 설정하면 NavMeshAgent가 자동으로 위치를 업데이트한다.
false로 설정하면 개발자가 직접 위치를 제어해야 한다.
destination
: 이동할 목표 지점을 설정한다. NavMesh에 존재하는 영역 안에 있는 지점을 설정해야 한다.
path
: 현재 NavMeshAgent의 경로 정보를 담고 있는 NavMeshPath 객체이다.
   이 객체를 통해 경로의 세부 정보를 확인할 수 있다.
avoidancePriority
: NavMeshAgent의 회피 우선 순위를 설정하는 데 사용된다.
이 속성은 다른 NavMeshAgent와 상호 작용할 때
어떤 에이전트가 어떤 에이전트를 회피해야 하는지 결정하는 데 도움이 된다.
우선순위 (Priority)의 동작 방식
: Priority 값이 낮을수록 우선순위가 높다.
우선순위가 낮은 NavMeshAgent가 우선순위가 높은 NavMeshAgent에게 양보한다.
즉, 더 높은 우선순위를 가진 NavMeshAgent가 동작 중이면,
더 낮은 우선순위를 가진 NavMeshAgent는 대기 상태로 들어간다.
만약 두 개 이상의 NavMeshAgent들이 같은 우선순위를 가지고 있다면,
거리에 따라 우선순위가 결정된다. 더 가까운 NavMeshAgent가 우선한다.
ObstacleAvoidanceType: 장애물 회피방식을 설정하는 속성이다.

NoObstacleAvoidance: 장애물 회피를 비활성화한다. NavMeshAgent는 장애물을 고려하지 않고 이동한다.
LowQualityObstacleAvoidance: 저품질의 장애물 회피 알고리즘을 사용한다. 성능을 우선시하는 경우에 적합하다.
MedQualityObstacleAvoidance: 중간 품질의 장애물 회피 알고리즘을 사용한다. 성능과 정확성을 균형있게 고려하는 경우에 적합하다.
GoodQualityObstacleAvoidance: 좋은 품질의 장애물 회피 알고리즘을 사용한다. 더 정확한 장애물 회피를 위해 계산 비용을 늘리는 경우에 적합하다.
HighQualityObstacleAvoidance: 최고 품질의 장애물 회피 알고리즘을 사용한다. 가장 정교한 장애물 회피를 위해 계산 비용을 늘리는 경우에 적합하다.
COMMENT