【Unity】ナビゲーションシステム
Unity2022では、NavMeshの作成の方法が変わっています
目次
NavMesh Surfaceの作成
次のように作成することで、NavMeshのコンポーネントがアタッチされたゲームオブジェクトが作成されます
これまでは、Windowメニューから作成していました
![](https://soft-rime.com/wp-content/uploads/2023/03/スクリーンショット-2023-03-28-17.39.40-829x1024.png)
Bakeする方法
NavMesh SurfaceゲームオブジェクトのインスペクターからBakeします
![](https://soft-rime.com/wp-content/uploads/2023/03/スクリーンショット-2023-03-28-17.43.39-728x1024.png)
エージェントの半径、高さ、登れる傾斜などのカスタマイズは、Agent TypeのHumanoidをプルダウンすることでメニューが選択できるようになっています
Bakeエリアの確認
![](https://soft-rime.com/wp-content/uploads/2023/03/スクリーンショット-2023-03-28-18.10.50-1.png)
シーンウィンドウの様子
![](https://soft-rime.com/wp-content/uploads/2023/03/スクリーンショット-2023-03-28-18.46.26-1024x721.png)
ナビゲーションのエリアが表示されない場合
オーバーレイメニューから表示メニューを出します
![](https://soft-rime.com/wp-content/uploads/2023/03/スクリーンショット-2023-03-28-17.46.02.png)
![](https://soft-rime.com/wp-content/uploads/2023/03/スクリーンショット-2023-03-28-17.47.54.png)
NavMeshAgentに目的地に移動するように指示する
エージェントが移動するポイントでNavMeshAgent.destinationプロパティを設定するだけで、パスの計算を開始するようにエージェントに指示できます。計算が完了するとすぐに、エージェントは目的地に到達するまで自動的にパスに沿って移動します。次のコードは、aGameObjectを使用して、Start関数の宛先プロパティに割り当てられるターゲットポイントをマークする単純なクラスを実装しています。スクリプトは、エディタからNavMeshAgentコンポーネントをすでに追加して設定していることを前提としていることに注意してください。
// MoveDestination.cs
using UnityEngine;
public class MoveDestination : MonoBehaviour
{
public Transform goal;
void Start () {
NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.destination = goal.position;
}
}
ディスカッション
コメント一覧
まだ、コメントがありません