Unity 내비게이션 및 경로 탐색 가이드
개요
이 문서는 Unity의 내비게이션 시스템과 경로 탐색 API에 대한 기본 개념과 사용 방법을 설명합니다. Unity에서는 내비메시를 사용하여 캐릭터가 환경을 이해하고 적절하게 이동할 수 있도록 지원합니다.
내비게이션 영역 및 비용
내비게이션 영역
내비게이션 영역(또는 네비게이션 영역)은 캐릭터가 어떤 공간에서 이동하는 데 드는 비용을 나타냅니다. 낮은 비용의 영역이 우선적으로 선택됩니다. 예를 들어:
- Water: 높은 비용을 할당하여 캐릭터가 물에서 느리게 이동하도록 설정할 수 있습니다.
- Door: 특정 캐릭터만 통과할 수 있는 영역으로 설정할 수 있습니다.
영역 타입 | 설명 |
---|---|
Walkable | 캐릭터가 걸을 수 있는 영역 |
Not Walkable | 캐릭터가 통과할 수 없는 영역 |
Jump | 자동 생성된 오프 메시 링크에 할당되는 타입 |
경로 탐색 비용
내비게이션 체계에서 캐릭터가 경로를 탐색할 때 특정 영역의 비용을 설정함으로써 선호하는 경로를 제어할 수 있습니다. 경로 탐색은 A* 알고리즘을 기반으로 하며, 연결된 노드 그래프에서 작동합니다.
경로 탐색 동작 과정
경로 탐색자는 각 폴리곤에 노드 위치 포인트를 배치하여 최단 경로를 계산합니다. 두 노드 사이의 이동 비용은 이동 거리와 해당 영역 타입의 비용에 따라 달라집니다.
비용 계산 방식 | 설명 |
---|---|
거리 * 비용 | 이동하는 거리와 폴리곤의 영역 타입 비용으로 계산 |
범위 제어 | 특정 영역의 비용을 조정하여 경로 선호도 조절 |
영역 마스크
각 에이전트는 이동 가능한 영역을 정의할 수 있는 영역 마스크를 가지고 있습니다. 이는 특정 타입의 캐릭터만 해당 영역을 통과하게 할 수 있는 기능입니다.
영역 마스크 설정 과정 | 설명 |
---|---|
에이전트 프로퍼티에서 설정 | 에이전트 프로퍼티를 통해 설정 가능 |
런타임 중 비트마스크 조작 | 스크립트를 사용하여 조작 가능 |
활용 예제
- 좀비 게임에서 문 설정: 각각의 문에 'Door' 지역 타입을 설정하고, 좀비의 영역 마스크에서 'Door' 타입을 선택 해제하면 좀비가 해당 문을 통과할 수 없게 됩니다.
- 물에서 느리게 걷기: 'Water' 지역의 비용을 높여 캐릭터가 물속에서 느리게 걷도록 구현합니다.
- 장애물 경로 설정: 특정 장애물에 'Not Walkable' 타입을 할당하여 캐릭터가 해당 경로를 통과하지 않도록 설정합니다.
추가 리소스
이 문서는 Unity의 내비게이션 기능을 이해하는 데 도움을 주는 기본적인 가이드를 제공하며, 내비게이션 시스템을 활용한 여러 시나리오 및 예제를 제시했습니다. Unity에서 경로 탐색과 내비게이션을 통해 게임의 몰입감을 더욱 높여보세요!