【Unity】NavMeshの作成手順(新バージョン)

新しいバージョンでの手順についてみていきましょう

パッケージマネージャからAI Navigationのインポート

障害物の作成

テスト用に高さ1くらいのCubeを作成して、プレイヤーと敵の間に置いておきましょう

シーンにNavMesh Surfaceゲームオブジェクトを作成と移動エリアの作成

ヒエラルキーで右クリック、AIメニューから選択します

敵の移動エリアの作成

作成後、NavMeshSurfaceコンポーネントで、移動可能エリアのベイクを実行します

手順の動画

追いかける敵を作成します

想定として敵に見立てたシリンダーを1つ置いてみましょう

敵に追いかける機能のコンポーネントを追加します

NavMeshAgentコンポーネントを追加します

追いかけるスクリプトの作成

移動用にスクリプトを1つ作成し、敵(シリンダー)にアタッチします
playerTransformフィールドがインスペクターで登録できますので、追いかけられるプレイヤーをドラッグ&ドロップします
エージェントのdestination(目的地)プロパティにプレイヤー自身を登録することで追いかける機能が実行されます

Updateに記述しているので、プレイヤーが移動すると、そこに向かって追いかけてくる様子がわかります

using UnityEngine;
using UnityEngine.AI;

[RequireComponent(typeof(NavMeshAgent))]
public class Enemy : MonoBehaviour
{
    [SerializeField]
    Transform playerTransform;

    NavMeshAgent agent;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        agent.destination = playerTransform.position;
    }
}

実行結果

AI,Unity

Posted by hidepon