이 컴포넌트는 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: 최고 품질의 장애물 회피 알고리즘을 사용한다. 가장 정교한 장애물 회피를 위해 계산 비용을 늘리는 경우에 적합하다.