Navigation Mesh
- 게임월드에서 이동 가능 / 불가능 등의 경로를 데이터로 저장
- 해당 실습을 하기 위해 window > package manager > unity registry > Ai Navigation으로 다운받음.
- 설치된 것을 확인했으면 navigation view를 위해 navigation mesh 설정.
- 4개의 탭이 있음.
- Agent Type
Agent Type
- 에이전트 속성
- 정보
- Name
- Radius
- Height
- Step Height
- Max Slope
Areas Type
- Name
- 구역 이름으로 기본으로 (Not) Walkable, Jump가 제공
- Cost
- 구역과 함께 등록되며 이동하는데 소요되는 비용
Bake
- 최근 버전에는 지원이 되지 않기에 NavMeshSurface component를 추가하여 bake 가능.
- Baked Agent Size
- Generated Off Mesh Links
- 언덕, 사다리, 절벽 등을 연결해서 이동 가능하게 만드는 옵션
- Drop Height : 이동할 수 있는 절벽 아래의 높이
- Jump Distance : 위에서 넘을 수 있는 절벽 거리
- "Bake" 버튼
Navigation Mesh 데이터 생성
- 게임 오브젝트의 Navigation Static 설정
- Inspector View 의 Static - Navigation Static 선택
- Navigation View의 Object 탭에 있는 Navigation Static 변수 체크
- Bake한 후 하늘색으로 표시되어 있는 부분이 이동 가능한 부분.
NavMeshAgent 기반의 캐릭터 이동
- 캡슐을 생성 및 material 생성하여 적용.
- NavMeshAgent도 설정.
- Steering
- 에이전트 이동
- Obstacle Avoidance
- Path Finding
[Script]
Movement.cs
- NavMeshAgent.SetDestination(Vector3 position); : position을 목표지점으로 설정.
- NavMeshAgent.destination : 목표지점
- NavMeshAgent.ResetPath() : 이동 경로를 초기화하여 이동을 멈추게 함.
PlayerController.cs
- 캡슐에 적용하면 캡슐 이동하는 동안 절벽을 선택하면 근처까지 가되 더 이상 이동 불가.
'유니티' 카테고리의 다른 글
유니티 06. 3D Model / Animations (0) | 2024.05.15 |
---|---|
유니티 06. Navigation Mesh 응용 (0) | 2024.05.15 |
유니티 05. CharacterController 기반의 오브젝트 이동 (0) | 2024.05.09 |
유니티 05. 2D Tilemap - Extras (0) | 2024.05.09 |
유니티 05. 2D Tilemap Editor (0) | 2024.05.08 |