SurfaceNavigation Module
SurfaceNavigation
메쉬 표면 위라면 어디든 — 벽이든 천장이든.
Unity NavMesh를 보완하는 커스텀 내비게이션 모듈입니다. 수직벽·경사면 등 임의의 메쉬 표면 위에서 폴리곤 단위 그래프 탐색으로 경로를 계산하며, 포털 시스템으로 불연속 영역 간 이동을 지원합니다.
주요 구성 요소
SurfaceNavigationHost 씬 내에서 내비게이션 데이터를 관리하고 연산을 요청하는 호스트 컴포넌트. 모듈의 진입점으로 Graph·Polygon·Portal의 생명주기를 담당합니다.
SurfaceGraph 표면들 간의 연결 상태를 관리하는 그래프 구조. 노드는 SurfacePolygon, 엣지는 인접 관계 및 Portal 통로로 구성되어 A* 탐색의 기반이 됩니다.
SurfacePolygon 길 찾기가 가능한 개별 면(Face) 단위. 메쉬의 트라이앵글 또는 그룹으로 표현되며, 법선 벡터·이동 비용·통과 가능 여부를 포함합니다.
SurfacePortal 서로 다른 폴리곤이나 영역 사이를 이동할 수 있는 통로. 물리적으로 연결되지 않은 표면 간 점프·텔레포트 경로를 Graph에 논리적 엣지로 추가합니다.
기능 설명
커스텀 표면 내비게이션
Unity NavMesh가 지원하지 않는 수직벽·역경사면·천장면 등 임의의 메쉬 표면에서 경로 탐색을 수행합니다. 표면의 법선 방향을 기준으로 중력 독립적인 이동 경로를 계산합니다.
포털 시스템
특정 지점을 통해 다른 영역으로 점프하거나 이동하는 로직을 효율적으로 계산합니다.
SurfacePortal이 Graph에 논리적 엣지를 추가해, 물리적으로 분리된 표면도
하나의 연결된 경로로 처리할 수 있습니다.
최적화된 그래프 탐색
폴리곤 단위의 그래프 탐색으로 복잡한 지형에서도 빠른 경로 결과를 도출합니다.
SurfaceGraph는 인접 폴리곤 관계를 사전 계산하여 런타임 탐색 비용을 최소화합니다.