유니티에 AI를 움직이기 위해서 필요한 네비게이션 시스템은 NavMesh, NavMeshAgent, NavMeshObstacle 등으로 이루어진다.
NavMesh는 움직일 수 있는 영역, NavMeshAgent는 움직이는 캐릭터, NavMeshObstacle은 영역 안의 장애물로 생각하면 된다.
● NavMesh
유니티 상단 툴바에서 Window - AI - Navigation 을 통해 구버전의 Navigation창이나 신버전의 Navigation에 접근할 수 있다.
구버전은 해당 창에서 Object를 선택하고 Bake를 할 수 있고 신버전은 NavMeshSurface라는 컴포넌트를 통해 여러 Bake옵션을 적용할 수 있다.
적절한 Agent를 선택하고 Bake하면 해당 Agent에 맞는 NavMesh가 생성된다.
● NavMeshAgent
NavMesh 위에서 움직일 객체에 컴포넌트로 붙여주면 되고 속도 등의 여러 옵션을 수정할 수 있다.
● NavMeshObstacle
NavMesh 위에 있는 장애물로 NavMeshAgent가 해당 영역을 피해서 움직인다. 동적으로 움직일 수 있지만 계산 비용이 있기 때문에 자주 움직이면 좋지 않다.
● 필수 사항
NavMesh는 MeshRenderer나 Terrain에만 생성할 수 있으니 해당 컴포넌트가 없다면 꼭 달아줘야 한다.
이정도만 알고 있다면 실제로 창을 열어서 보기만 해도 직관적으로 어떻게 하면 될지 알 수 있다.
자세한 정보는 유니티 공식 문서를 참조하자.
※ 레거시 Navigation
https://docs.unity3d.com/kr/2023.2/Manual/nav-NavigationSystem.html
Unity의 내비게이션 시스템 - Unity 매뉴얼
내비게이션 시스템을 통해 게임 월드에서 이동할 수 있는 캐릭터를 생성할 수 있습니다. 2층으로 가기 위해 계단을 오르거나 배수로를 넘기 위해 점프해야 하는지를 이해할 수 있는 능력을 캐릭
docs.unity3d.com
※ 새로운 Navigation
https://docs.unity3d.com/Packages/com.unity.ai.navigation@2.0/manual/index.html
AI Navigation | AI Navigation | 2.0.0-pre.4
AI Navigation The navigation system allows you to create characters that can intelligently move around the game world. These characters use navigation meshes that are created automatically from your Scene geometry. Dynamic obstacles allow you to alter the
docs.unity3d.com
'부트캠프' 카테고리의 다른 글
NavMeshAgent와 CharacterController를 이용한 점프 (0) | 2023.10.18 |
---|---|
델리게이트를 이용해서 UI를 구성하기 (0) | 2023.10.12 |
드래그 앤 드롭을 구현하기 (0) | 2023.10.06 |
ToggleGroup (0) | 2023.09.26 |
전략패턴 (0) | 2023.09.25 |