[Go-Unity 3D] 13. 경로탐색 Navigation Mesh ⭐⭐⭐
카테고리: Go Unity
Navigation Mesh, Step Height(계단) , Max Slope(경사각),
컴포넌트(NavMeshAgent, OffMeshLink, NavMeshObstacle)
고박사의 유니티 기초를 정리.
1. Navigation Mesh
게임월드에 이동 가능, 이동 불가능 등의 경로를 데이터로 저장
2. Navigation View
Window->AI->Navigation
1). Agents
네비게이션 메시 정보를 바탕으로 움직이는 에이전트에 대한 설정(NavMeshAgent 컴포넌트)

- Agent Type 에이전트 속성 + 로 새로운 에이전트 속성을 추가
Agent 정보
NameRadiusHeightStep HeightMax Slope
Step Height: 오르내릴 수 있는 계단의 높이
Max Slope: 올라갈 수 있는 경사 각도
2). Area
네비게이션 메시로 사용되는 오브젝트들의 구역설정

- Name : 구역 이름으로 기본으로
Walkable(이동가능),NotWalkabel(이동불가),Jump(뛰기)가 제공되고,
User 3 부터 원하는 구역을 추가 설정할 수 있다.Cost: 구역과 함께 등록. 이동하는데 소요되는 비용 경로를 탐색할 때 Cost 정보를 기준으로 최단거리를 찾게 된다.
3). Bake
네비게이션 메시 데이터를 생성

Baked Agent Size
(
Agent Radius,Agent Height,Max Slope,Step Height)반지름, 높이, 경사각, 계단의 높이
Generated Off Mesh Links
오브 메시 링크는 올라가기 힘든 언덕, 사다리, 절벽 등을 연결해서 이동 가능하게 만드는 옵션이다.
Drop Height: 이동할 수 있는 절벽 아래의 높이
Jump Distance: 뛰어서 넘을 수 있는 절벽 거리
- Bake 버튼 : Navigation에 설정된 옵션들을 바탕으로 데이터를 굽는다.
4). Object
재 씬에 있는 오브젝트 설정

- Scene Filter : 현재 씬에서 원하는 오브젝트만 선택해서 볼 수 있다.
선택된 오브젝트
Navigation Static: 네비게이션 메시로 사용할지 설정
Genrate OffMeshLink: 자동으로 Off Mesh를 생성할지 설정
Navigation Area: 해당 오브젝트의 구역 설정
3. NavMeshAgent 컴포넌트
네비게이션 메시 정보를 바탕으로 이동하는 에이전트

Steering(에이전트 이동)
Angular Speed: 방향을 바꿀 때의 회전속도
Acceleratin: 가속도 (정지->이동속도가 될 때까지 적용)
Sopping Distance: 목적지가 이 값까지 가까워지면 이동을 멈춤
Auto Baking: 목적지에 가까워지면 멈추는 기능
Obstacle Avoidance(장애물 회피)
Radius: 장애물을 회피할 때 에이전트의 반지름
Height: 에이전트의 높이
Quality: 장애물과 충돌 수준 (None이면 뚫고 지나간다)
Priority: 장애물과 충돌했을 때의 우선순위 (낮을 수록 높다)
(이동 중인 두 에이전트의 모든 조건이 동일할 때 Priority가 낮은 에이전트가 더 우선권을 가지고 경로를 탐색하게 된다)
Path Finding(경로탐색)
Auto Traverse Off Mesh Link: 오프 메시 링크가 있을 경우 자동으로 탐색해서 찾아갈지 설정
Auto Repath: 이동 중에 경로 탐색을 다시 할지 설정
(true : 이동 중에 장애물 등으로 막혔을 때 자동으로 재계산)
Area Mask: 해당 에이전트의 이동 가능한 구역 지정
다른 컴포넌트들

- OffMeshLink : 연결이 끊어져 있는 절벽, 낭떠러지, 사다리 등을 이동 가능하게 설정
- NavMeshObstacle : 이동하는 장애물의 네비게이션 메시 정보를 실시간으로 설정
[Go-Unity 3D] 15. Navigation Mesh 연습2
4. Navigation mesh 생성
- Navigation Static 설정하기
방법1. 원하는 오브젝트 선택 후 Inspector View 의 Static - Navigation Static 선택

방법2. Navigation View의 Object 탭에 Navigation Static 변수 체크

- Bake 탭의 설정을 원하는 수치만큼 조정
- Bake 탭의 Bake버튼으로 데이터 생성
(Scene 뷰의 하늘색 구역이 이동가능한 부분이다)

- Playe 오브젝트에 Nav Mesh Agent 등록

5. 정리
- Navigation으로 최단루트로 길찾는 방법에 대해서.
댓글남기기