레벨 지오메트리에서 내비메시(NavMesh) 생성 과정을 내비메시 베이킹이라 부릅니다. 이 프로세스는 내비게이션 정적으로 마크된 메시 렌더와 모든 게임 오브젝트의 터레인을 수집한 후 처리하여 내비메시를 생성합니다. 메시는 레벨의 걸을 수 있는 표면과 비슷합니다.
Unity에서 내비메시 생성은 Navigation 창(메뉴: Window > AI > Navigation)에서 이루어집니다.
씬에서는 네 가지 단순한 단계를 거쳐 내비메시를 빌드합니다.
빌드된 내비메시 결과는 내비게이션 창이 열리고 사용자의 눈에 씬이 들어올 때마다 기본 지오메트리 레벨 위에 파란 오버레이로 나타납니다.
위 그림에서 볼 수 있듯이, 생성된 내비메시에서 걸을 수 있는 영역이 더 작아 보입니다. 내비메시는 에이전트의 센터가 움직일 수 있는 영역을 나타냅니다. 개념적으로는 에이전트를 작아진 내비메시의 포인트로 여기든 풀 사이즈 내비메시의 원으로 여기든 둘은 같은 요소이므로 상관이 없습니다. 하지만 포인트로 해석하면 런타임 효율을 개선할 수 있고, 에이전트가 반지름에 상관없이 틈 사이로 지나갈 수 있는지 여부를 설계자가 즉시 확인할 수도 있습니다.
또 한 가지 유의해야 할 점은 내비메시는 걸을 수 있는 표면에 대한 근사치라는 점입니다. 예를 들어 계단의 경우 평면으로 표현되지만 소스 표면은 계단으로 되어 있을 수 있습니다. 이것은 내비메시 데이터 크기를 작게 유지하기 위해서입니다. 근사치의 부작용은 가끔씩 레벨 지오메트리에 추가 영역을 가져야 에이전트가 좁은 지점을 통과할 수 있습니다.
베이킹이 끝나면 내비메시 에셋 파일이 씬 이름과 같은 이름을 가지고 폴더 안에 생성됩니다. 예를 들어 씬을 Assets 폴더 안에 첫 번째 레벨 로 만들었다면 내비메시는 Assets > First Level > NavMesh.asset 에 위치하게 됩니다.
내비게이션 창에서 오브젝트를 내비게이션 스태틱 으로 마킹하기 외에도 위에서 설명한 대로 인스펙터 맨 위의 정적 메뉴를 이용할 수 있습니다. 내비게이션 창을 열어 두지 않았다면 편리한 기능입니다.