私は現在、ゲーム プロジェクトのパスファインディング セクションに取り組んでいます。navmesh のベイクに問題があります - 歩きやすくしたい領域のすべてをカバーしていませんでした。
問題の画像は次のとおりです。
エリア全体をナビメッシュでカバーして、エージェントが歩けるようにするにはどうすればよいですか?
私は現在、ゲーム プロジェクトのパスファインディング セクションに取り組んでいます。navmesh のベイクに問題があります - 歩きやすくしたい領域のすべてをカバーしていませんでした。
問題の画像は次のとおりです。
エリア全体をナビメッシュでカバーして、エージェントが歩けるようにするにはどうすればよいですか?
残念ながら、Unity の navmesh ベースのナビゲーション システムは、y 軸に整列した地形でのみ機能するように設計されています。つまり、ワールドの y 軸がアップ ベクトルとして使用され、地形の傾斜はそれを基準として使用して計算されます。 .
球状オブジェクトの上部のみが歩行可能と見なされる理由は、y 軸をアップ ベクトルと見なす場合、その地形の残りの部分の傾斜が navmesh ベイク設定で許容されるよりも大きいためです。
これを解決する唯一の方法は、カスタム ソリューションを作成することです。しかし、幸いなことに、そのような質問をするのはあなたが初めてではありません。一般的に受け入れられているアプローチは、(メッシュの頂点に基づく) カスタム ヒューリスティック関数でA* アルゴリズムを使用して、目的地までの最短パスを計算することです。
Unity で A* を実装する方法に関する優れたチュートリアルを次に示します。これにより、基本を理解できるため、アルゴリズムをそれ自体でラップする地形に適用する方法を理解できます。独自のソリューションを作成する予定がない場合は、Unity アセット ストア(無料バージョンも利用可能) で販売されている既存の A* アセットもあります。これは、Unity 独自のナビゲーション システムを大幅に改善したものと考えられており、いくつかの調整を加えた、あなたのような非垂直地形。
お役に立てれば!ご不明な点がございましたら、お知らせください。