-
캐릭터가 씬 안에서 돌아다니게 하려면
-
먼저 NavMesh를 생성해야 합니다.
-
NavMesh를 생성하는 일을 베이킹이라고 합니다.
-
Unity에서는
-
Navigation 뷰에서 NavMesh를 생성할 수 있습니다.
-
Navigation 뷰를 열려면
-
[Window]-[Navigation]을 클릭합니다.
-
Navigation 뷰는, Unity의 다른 창들처럼
-
크기를 조절하거나 끼워넣을 수 있습니다.
-
Navigation 뷰에는
-
세 개의 탭
-
Object, Bake 그리고 Layers가 있습니다.
-
NavMesh를 베이킹하려면 Unity에게
-
어느 오브젝트가 Navigation Static인지 알려주어야 합니다.
-
즉, 그 오브젝트는 고정되어있으니
-
씬에서 보행 가능한 구역을 계산하는 데 사용할 수 있다는 의미입니다.
-
일반적으로 고정되어 있는 오브젝트는
-
바닥, 벽, 고정 장애물 같은 오브젝트입니다.
-
내비게이션 뷰의 오브젝트 탭에서
-
게임 오브젝트를 선택하고
-
Navigation Static 확인란을 체크하여 지정할 수 있습니다.
-
또는 Inspector 뷰에서
-
게임 오브젝트를 고정물로 지정해도 되는데,
-
Static 드롭다운 메뉴를 클릭하고
-
Navigations Static을 선택합니다.
-
OffMeshLink Generation 확인란은
-
Unity가 OffMeshLink를 생성할 것인지
-
결정합니다.
-
OffMeshLink에 관해 자세한 내용은
-
아래 링크된 학습 자료를 참고하십시오.
-
마지막으로
-
선택 오브젝트의 Navigation Layer를 지정할 수 있습니다.
-
세 개의 기본 레이어
-
Default, Not Walkable, Jump가 있습니다.
-
레이어는 이 동영상의 후반부에서
-
자세히 다루도록 하겠습니다.
-
NavMesh 계산에 반영하는
-
모든 게임 오브젝트에 Navigation Static 체크박스를
-
계속 체크해야 할 텐데,
-
필터를 이용하면 하이어라키 뷰에서
-
오브젝트의 표시 방식을 변경할 수 있으므로
-
오브젝트 선택이 더 쉬워집니다.
-
All을 선택하면 모든 오브젝트가 표시됩니다.
-
Mesh Renderers는
-
Mesh Renderers 컴포넌트를 가진 오브젝트를 보여줍니다.
-
Terrains는 씬에 있는 지형 오브젝트를 보여줍니다.
-
레이어 탭은 다양한 내비게이션 레이어를
-
생성하고 편집할 수 있는 곳입니다.
-
내장된 세 가지 기본 레이어 외에도
-
사용자 정의 레이어를 여러 개 생성할 수 있습니다.
-
레이어마다 내비게이션 계산에
-
적용할 비용 계수를 다르게 지정할 수 있습니다.
-
예를 들어, 기본 레이어는
-
이동하기 쉬운 도로로 구성된다고 합시다.
-
그럼 1의 비용 계수를 가집니다.
-
진흙 레이어가 있을 수 있죠.
-
이것은 보행하기 훨씬 어려우므로
-
비용 계수 3을 줍니다.
-
이것의 의미는, 경로를 계산할 때
-
캐릭터가 진흙 레이어에 할당된
-
오브젝트를 피할 가능성이 더 크다는 말입니다.
-
걷기가 더 어려우니까요.
-
Bake 탭에서는
-
NavMesh 속성을 선택합니다.
-
반경은 캐릭터가
-
벽이나 다른 장애물에 접근할 수 있는 거리입니다.
-
또한 캐릭터가 통과할 수 있는 가장 좁은 경로를 정의하기도 합니다.
-
Height 속성은 캐릭터가
-
통과할 수 있는 천장의
-
높이입니다.
-
예를 들어, 빈 경로가 있다고 해도
-
천장이 너무 낮으면 캐릭터가 통과할 수 없습니다.
-
Max Slope는, 그 경사를 넘으면
-
벽으로 간주해서 통과할 수 없는 오브젝트가 되는
-
경사 값을 지정합니다.
-
Step Height 속성은
-
캐릭터가 통과할 수 있는 계단의
-
높이 한계입니다.
-
생성된 Off Mesh Links 속성에 대해서는
-
아래 링크된 강좌에서 자세히 다루겠습니다.
-
그 외에도 이용할 수 있는 몇 가지 고급 설정이 있지만
-
대부분 상황에서는 기본 설정을 지정하는 것만으로 충분합니다.
-
Min Region Area은
-
NavMesh에 포함되기 위해
-
표면이 가져야 하는 최소 면적입니다.
-
Inaccuracy % 속성은
-
메쉬의 가장자리가 얼마나 정확하거나
-
부정확할 것인지 지정합니다.
-
마지막으로 Height Mesh를
-
생성할 것인지 선택할 수 있습니다.
-
이걸 선택하면 움직임의 정확도가 높아지지만
-
대신에 생성 속도가 느려집니다.
-
이렇게 모든 속성을 지정하면
-
Bake 버튼을 누릅니다.
-
그러면 NavMesh가 생성됩니다.
-
완료되면 NavMesh가
-
파란색 레이어로 나타납니다.
-
파란색으로 표시된 모든 영역은 보행 가능한 영역입니다.
-
파란색 레이어가 보이지 않으면
-
씬 뷰에서 NavMesh 보이기 옵션이
-
체크되어 있는지 확인하십시오.