[Unity] NavMesh, NavMeshAgent

Jongmin Kim·2025년 5월 10일

Unity

목록 보기
18/19
post-thumbnail

개념

유니티의 Navigation 시스템을 이용하면 씬 내에서 지능적으로 탐색하여 이동하는 오브젝트를 생성할 수 있다.

이때 NavMesh는 게임 월드에서 걸을 수 있는 표면을 의미하며, NavMeshAgentNavMesh 위에서 목적지까지 경로를 찾고 이동하는 오브젝트를 의미한다.


경로 추론

NavMeshAgent가 목적지까지의 경로를 추론하기 위해서 두 단계를 거친다.
1. Global Navigation(전역 네비게이션)
2. Local Navigation(지역 네비게이션)


전역 네비게이션은 NavMesh를 살펴 마땅한 경로를 찾아 통로를 만드는 작업이다.
전역 네비게이션 단계에서는 세부적인 장애물 탐색과 회피, 이동에 관련된 작업은 하지 않는다.


Local Navigation

지역 네비게이션은 전역 네비게이션을 통해 생성된 통로를 통해 이동하는 과정을 만드는 작업이다.
지역 네비게이션 단계에서는 세부적인 장애물의 위치를 탐색하고 이를 회피하는 경로를 탐색하며, 이 경로를 따라 이동하는 작업과 통로를 갱신하는 작업이 이루어진다.


필드 및 메서드

필드 목록

필드설명
hasPathAgent가 목적지를 가지고 있는지의 여부
isOnNavMeshAgent가 NavMesh 위에 존재하는지의 여부
remainingDistanceAgent와 목적지의 직선 거리
만약 중간에 장애물이 있다면 Infinity

메서드 목록

메서드설명
SetDestination(Vector3 position)Agent의 목적지 경로를 설정하거나 업데이트
몇 프레임 간에 경로를 계산하고, 유효한 경로가 추론되면 이동을 시작
Warp(Vector3 position)Agent를 특정 위치로 순간이동
Stop()목적지 경로를 유지한 채, Agent의 이동을 정지
Resume()목적지 경로를 유지한 채, Agent의 이동을 재개
Move(Vector3 offset)Agent를 오프셋만큼 이동
Agent가 경로를 가진 경우, 경로가 조정됨
profile
Game Client Programmer

0개의 댓글