【Unity】ナビゲーションシステム

2023年4月1日

Unity2022では、NavMeshの作成の方法が変わっています

NavMesh Surfaceの作成

次のように作成することで、NavMeshのコンポーネントがアタッチされたゲームオブジェクトが作成されます
これまでは、Windowメニューから作成していました

Bakeする方法

NavMesh SurfaceゲームオブジェクトのインスペクターからBakeします

エージェントの半径、高さ、登れる傾斜などのカスタマイズは、Agent TypeのHumanoidをプルダウンすることでメニューが選択できるようになっています

Bakeエリアの確認

シーンウィンドウの様子

ナビゲーションのエリアが表示されない場合

オーバーレイメニューから表示メニューを出します

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; 
    }
 }

参考

C#,Unityバトル

Posted by hidepon