Unity6 AI Navmesh 2.0.5のベイク方法

Unity

先日Unityを2022.3.12f1から6000.32f1にバージョンアップした際に遭遇した事象について記します



既存のプロジェクトに適用した結果

2つのプロジェクトに対してUnity6を適用した結果、一方はエラーがいくつか出たものの、それをクリアしたら状態が安定しました

しかし、もう一方のプロジェクトはシーン内がカメラとライトだけになっており、その他全てのオブジェクトが消えてしまいました

プロジェクト内の物は健在だったのでそれを駆使してシーン内の物をなんとか復旧した形です

既存プロジェクトをアップデートする際はその内容によって起こる事象が変わってくるようなので、事前にバックアップを取ることをお勧めします

シーンを復旧した際にAI Navmeshを2.0.5にバージョンアップしたのですが、若干仕様が変わっていて苦戦したので以下に記そうと思います

ベイクボタン行方不明?

NavMeshをベイクしようとした際に以下のように従来の手順でやってみました

Window→AI→Navigationをクリック

Navigationダイヤログの赤丸近辺にあるはずのベイクボタンが無いのです

もふもふ
もふもふ

無いはヤバい(;゚Д゚)

調べたところ、NavMesh Surfaceというコンポーネント上にベイクボタンがあることが分かりました

(これは仕様が変わったというより、Window→AI→Navigation(Obsolete)が無くなったというべきかもしれません)

シーン上に空オブジェクトを作成してNavMesh Surfaceコンポーネントをアタッチすればいいようです

空オブジェクトの名前をNavMeshParent(青線部分)とし、障害物等対象にしたいオブジェクトをその子にします

Collect ObjectsをCurrent Object Hierarchyに指定します(緑線部分)

その状態でベイクボタン(赤線部分)をクリックすると・・・

無事にベイクすることが出来ました!



まとめ

ナビメッシュのベイク方法

空オブジェクトにNavMesh Surfaceコンポーネントをアタッチ

→Collect ObjectsをCurrent Object Hierarchyに指定

→対象オブジェクトを子に設定

→ベイクボタンにてベイク

従来は対象にしたいオブジェクトのstaticにチェックを入れる方式でしたが、新方式では親子関係にすることで見た目にも分かりやすく使い勝手が良くなったかと思います

タイトルとURLをコピーしました