본문 바로가기
개발/Unity

Unity) NevMesh 사용해서 길찾기

by 테샤르 2020. 1. 10.

NevMesh 사용해서 길찾기

 

유니티에서는 NevMesh라는 길을 찾는 기능을 지원한다.

 

기본 원리는 다음과 같다.

 

특정 오브젝트들을 선택해서  'Bake' 이후에 만들어지는 NevMesh를 통해서 Agent들이 길을 찾는 것이다.

 

Window - Ai - Navigation의 메뉴를 클릭한다.

 

Navigation이라는 메뉴창이 나오는데 여기에서 Object 메뉴를 눌러서 hierarchy 상에서 맵으로 될 오브젝트를 선택한다.

 

Navigation Area라는 항목에는 Walkable(이동 가능한) , Not Walkable(이동 불가능한), Jump(점프)라는 항목을 오브젝트마다 선택해준다.

이때 'Navigation Static이라는 건 움직이지 않는 정적인 오브젝트일 경우에 '체크'해준다.

 

오브젝트들을 선택하고 난 이후에는 Bake 항목으로 가서 높이 값이라던지 등등 설정값을 설정하고 Bake를 눌러준다.

Bake는 씬 1개당 1개만 가능한데. NavMesh가 저장되는 항목은 'Scenes - 해당 Scene의 이름 - NavMesh으로 저장된다.

 

이렇게 Bake가 되면 Scene 상에서 파란색으로 적용된 영역을 볼 수 있다.

이제 길을 만들었으니 길을 찾을 Bot (Agent)를 설정할 차례이다.

해당 움직임을 처리하고 싶은 오브젝트의 Inspector에 NavMeshAgent를 추가한다.

 

 

스크립트에서 위와 같이 테스트 코드를 작성한다.

using UnityEngine.AI;



   public class MoveTo : MonoBehaviour {
       
       public Transform goal;
       private NavMeshAgent agent = null;
       
       void Start () {
          agent = GetComponent<NavMeshAgent>();
          agent.destination = goal.position; 
       }
    }

 

position으로 길을 이동하는 것을 알 수 있다.

 

 

유니티 공식 문서 :https://docs.unity3d.com/Manual/Navigation.html

 

Unity - Manual: Navigation and Pathfinding

Navigation and Pathfinding The navigation system allows you to create characters that can intelligently move around the game world, using navigation meshes that are created automatically from your SceneA Scene contains the environments and menus of your ga

docs.unity3d.com

 

반응형

댓글