WinCNT

Unity 2022.2부터 Navigation이 AI Navigation로 바뀌었다길래 사용해봤다 본문

Unity/Unity 관련

Unity 2022.2부터 Navigation이 AI Navigation로 바뀌었다길래 사용해봤다

WinCNT_SSS 2023. 11. 14. 09:52

서론

유니티를 2021.3에서 2022.3으로 버전하던 도중, 버전 업 가이드에 Navigation and Pathfinding이 바뀌었다는 문구가 있었다

Navigation and Pathfinding is moving from the Unity core to the AI Navigation package

 

조금 조사해보니 예전부터 사용된 빌트 인 네이게이션 시스템도 있는 것 같고, Unity 2022.2 이전이지만 실험적 패캐지로써 사용하는 경우도 있는 것 같았다

(심지어 따로 깃허브에서 소스를 받아서 쓰는 경우도 있었음)

 

필자의 경우 Unity를 버전 업하니 com.unity.ai.navigation가 1.0.0-exp.4에서 1.1.4로 변경되었다

문제는 그로 인해 사용법과 인터페이스도 좀 바뀐 것 같다

찾아보니 다행히 공식 문서에 잘 나와있었지만, 필자도 처음에는 당황했었기에 혹시나 필자와 같은 사람들이 있을까 해서 매우 간단하게 정리해보고자 한다


그래서 뭐가 바뀌었는데?

사실 이 내용을 정리하게 된 계기이다

버전 업을 하고 Navigation 항목을 확인해보니 다음과 같이 바뀌어있었다

버전 업 전(좌) /  버전 업 후(우)

 

아마 패키지의 manifest.json을 확인해보니 com.unity.ai.navigation가 1.0.0-exp.4에서 1.1.4로 변경된 영향으로 보인다

문제는 인터넷에 올라온 많은 예제들은 대부분 항목이 4개(Agents, Areas, Bake, Object)인 예제였다

아니! 새로운 버전에서는 어떻게 Bake하는 거냐고~!


그래서 결국 Bake는 어떻게 함?

버전 1.1.4부터 Navigation 창의 Bake 탭은 컴포넌트로 완전히 대체되었다!

여태까지는 Object 탭에서 Mesh Renderer나 Terrains 게임 오브젝트를 선택해서 Navigation Static에 체크를 하고 Bake 탭에서 Bake 버튼을 눌러서 NavMesh를 만들었다

 

하지만 Unity 2022.2 이후부터는 이 방식이 Legacy가 되었다

이제부터는 NavMesh를 위해서는 패키지 com.unity.ai.navigation가 필요하며, AI Navigation 1.1.4부터는 Object와 Bake 탭이 삭제되었다

 

이제 NavMesh를 Bake하기 위해서는, 게임 오브젝트에 NavMeshSurface라는 컴포넌트를 추가한 다음, 그 컴포넌트에 있는 Bake 버튼으로 NavMesh를 생성하는 방식을 택해야한다

또한 이제 Navigation Static에 체크할 필요가 없어졌다(Static에서 선택도 안 되게 변경됨)

NavMeshSurface 컴포넌트의 Use Geometry와 Object Collection에 해당하는 Object면 NavMesh의 대상이 된다

Non-Static이라도 문제 없이 Bake된다

Non-Static이라도 문제 없이 Bake된다


정답은 언제나 공식 문서

기존까지의 방법이 작성된 문서는 그냥 아예 Lecacy라는 딱지가 붙어있다

Unity - Manual: Legacy navigation and pathfinding

 

Unity - Manual: Legacy navigation and pathfinding

Registering an Action Handler Legacy navigation and pathfinding NOTE This system is deprecated and has been replaced by the AI Navigation package. The functionality described here is made available only in projects that have been created with earlier Edito

docs.unity3d.com

 

이제부터 봐야하는 건 AI Navigation package의 매뉴얼이다

AI Navigation | AI Navigation | 1.1.4

 

AI Navigation | AI Navigation | 1.1.5

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

AI Navigation에는 NavMeshObstacle나 OffMeshLink 등 NavMesh 생성에 필요한 여러 컴포넌트들에 대한 설명도 자세히 나와 있었다

이 부분은 버전 업에 의해 크게 변경된 부분은 없는 것 같아서 생략하려고 한다

 

그리고 관련 자료를 못 찾아서 혼자서 맨땅에 헤딩하면서 시도했었는데, 이 글을 거의 다 정리하니 일본 쪽에서는 현재 버전에 대한 정리 사이트가 있었다…Nav흑흑

【Unity】NavMeshを使ってキャラクターを自動で移動させる

 

【Unity】NavMeshを使ってキャラクターを自動で移動させる

記事作成時の動作環境 Unity 2022.3.2f1 NavMesh 1.1.4 NavMeshとは NavMesh(ナビメッシュ)とはUnityの機能の1つで、AIを使ったナビゲーションシステムです。 ステージ上の歩行可能なエリアを設定

vanikki.com


결과

아래는 NavMesh 생성을 위해 이리저리 테스트 해본 결과이다


마무리

Unity 버전 업 작업에서 비롯된 간단한 검증 작업 중 하나인지라 NavMesh 자체에 대한 정리가 살짝 약한 것 같기는 하다

직접적인 NavMesh 관련 작업이 생긴다면 그 때가서 좀 더 정리해볼까 싶다

아무튼 이번 글은 이걸로 끝!


참고 사이트

AI Navigation | AI Navigation | 1.1.4

 

AI Navigation | AI Navigation | 1.1.5

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

【Unity】NavMeshを使ってキャラクターを自動で移動させる

 

【Unity】NavMeshを使ってキャラクターを自動で移動させる

記事作成時の動作環境 Unity 2022.3.2f1 NavMesh 1.1.4 NavMeshとは NavMesh(ナビメッシュ)とはUnityの機能の1つで、AIを使ったナビゲーションシステムです。 ステージ上の歩行可能なエリアを設定

vanikki.com