> For the complete documentation index, see [llms.txt](https://ditoland-utplus.gitbook.io/ditoland/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ditoland-utplus.gitbook.io/ditoland/manual/navmeshvolume.md).

# NavMeshVolume

플레이어의 캐릭터나 NPC에 길찾기 이동을 적용하는 방법이에요

플레이어의 캐릭터나 NPC, 몬스터가 이동할 수 있는 범위를 지정해주는 NavMesh의 사용법이에요. 🤸‍♀️

NavMesh를 이용하면 장애물(건물, 소품 등)을 피해 이동시킬 수 있어요.&#x20;

샘플맵 바로가기

{% content-ref url="/pages/-MVtfYoN7zHoqLwn7vIV" %}
[Scripting](/ditoland/sample/scripting.md)
{% endcontent-ref %}

## NavMesh 생성하기

월드 트리 - Navigation 의 '+' 를 눌러 NavMeshVolume을 추가해 주세요.&#x20;

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lxtl0ocR1cA2G25jLXa%2F-Mkfhc-4yN7rs_yMuHSU%2F-MkfiCqr181FB9Eqh1MP%2FNavMeshVolume%20%EB%A7%A4%EB%89%B4%EC%96%BC1.png?alt=media\&token=8e5e4652-dd75-4a2f-ace2-38757e693a32)

###

## NavMesh 영역 표시 방법

먼저, 메뉴바의 '**내비 표시**'를 체크해주세요.&#x20;

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lxtl0ocR1cA2G25jLXa%2F-Mkfhc-4yN7rs_yMuHSU%2F-MkfiIEkOLVL53H6sAAL%2FNavMeshVolume%20%EB%A7%A4%EB%89%B4%EC%96%BC2.png?alt=media\&token=3dcbac39-5d0f-4169-acb0-f0012a4a00d5)

그 다음, NavMesh가 바닥에 닿도록 높이를 조정해 주세요.&#x20;

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lxtl0ocR1cA2G25jLXa%2F-Mkfhc-4yN7rs_yMuHSU%2F-MkfiLbh_xx6JVKbzjhX%2FNavMeshVolume%20%EB%A7%A4%EB%89%B4%EC%96%BC3.png?alt=media\&token=8a7c6171-6935-4c20-9b75-f9b23e228c07)

## NavMesh 영역 지정

NavMesh 안에 장애물 (건물, 소품 등) 을 위치시키면, 자동으로 영역 (연두색 영역) 에서 제외시켜 NPC/몬스터가 장애물을 피해 갈 수 있게 해줘요.&#x20;

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lxtl0ocR1cA2G25jLXa%2F-Mkfhc-4yN7rs_yMuHSU%2F-MkfiQzEOVtuNckrd6yh%2FNavMeshVolume%20%EB%A7%A4%EB%89%B4%EC%96%BC4.png?alt=media\&token=e36a327b-8323-402c-9454-8b753f5e5386)

❗ 경사로와 높이가 다른 층의 NavMesh를 적용하려면 오브젝트의 면적을 충분히 크게 만들어주세요. 너무 작으면 NavMesh가 적용되지 않아요.&#x20;

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lxtl0ocR1cA2G25jLXa%2F-Mkfhc-4yN7rs_yMuHSU%2F-MkfiUMDygZKJtM_G1hd%2FNavMeshVolume%20%EB%A7%A4%EB%89%B4%EC%96%BC5.png?alt=media\&token=230f941f-5112-46cf-9e8e-9f5041e806f3)

## 캐릭터 /  NPC / 몬스터의 길찾기 이동&#x20;

NavMesh 안에 NPC/몬스터를 위치 시킨 후, MoveToLocation 함수를 이용하면 \
대상을 이동시킬 수 있어요. (NavMesh 안에 위치하지 않으면 이동하지 않아요.)&#x20;

```
--ServerScript에서 
local NPC = Workspace.NPC
local Goal = Workspace.Goal
local GoalPos = Goal.Location  -- 이동할 지점의 위치값을 가져와요. 

wait(0.5) --NavMeshVolume 정보를 처리할 수 있는 잠깐의 대기 시간을 주어요. 
NPC:MoveToLocation(GoalPos) --NPC를 특정 위치로 길찾기 이동해요.
```

## Navigation 프로퍼티

Navigation의 프로퍼티을 통해 NavmeshVolume들의 공통 프로퍼티를 조절할 수 있어요.

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FWV4Ax3P6Z5kypdxAxYdY%2Fnav_add1.png?alt=media\&token=19344a7d-0e89-4e2e-8915-b7b515c42c26)

### Navigation 프로퍼티 목록

<table><thead><tr><th width="266.0714285714286">프로퍼티</th><th>설명</th></tr></thead><tbody><tr><td>CellSize</td><td>NevMesh 그리드를 구성하는 복쉘의 크기</td></tr><tr><td>AgentRadius</td><td>영역을 지나갈 수 있는 NPC/몬스터의 최소 반경</td></tr><tr><td>AgentHeight</td><td>이 영역을 지나갈 수 있는 NPC/몬스터의 최대 높이</td></tr><tr><td>AgentMaxSlope</td><td>NPC/몬스터가 이동할 수 있는 최대 기울기</td></tr><tr><td>AgentMaxStepHeight</td><td>NPC/몬스터가 지나갈 수 있는 최대 계단높이</td></tr></tbody></table>

* CellSzie의 값이 작을 수록 NevMesh를 구성하는 복쉘들이 조밀하게 배치돼요.

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lxtl0ocR1cA2G25jLXa%2Fuploads%2FAQITiPtS5siXjq931GQ6%2Fnav_add2.png?alt=media\&token=5e40d794-6121-4fae-acdc-332cdde1503e)

## 기타 문의 방법&#x20;

![](https://1068493773-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lxtl0ocR1cA2G25jLXa%2Fsync%2F5455b8eca3d169c3b74d1877ec9b0747f2b0d6fb.png?generation=1616659359338028\&alt=media)

**다른 개발자들과 다양한 정보를 공유하세요. 디토랜드 운영에게 직접 질문할 수도 있습니다.**

### [**디토랜드 디스코드 바로가기👉**](https://discord.gg/7EugJsh4nX)
