【Unity】NavMeshAgentの経路を動的にベイクする方法

2022年8月26日

どうも、だらはです。
今回は、NavMeshAgentの経路を動的にベイクする方法を紹介します。

スポンサーリンク

実装方法

具体的な実装手順は以下の通りです。

  1. [Window -> AI -> Navigation -> Bake]のリンク「Learn instead about the component workflow」より、ファイル一式をダウンロードする。(参考①)
  2. 1のファイルより、「Gizmos」「NavMeshComponents」をUnityのAssets直下にインポートする。
  3. 空のGameObjectを生成し、「NavMeshSurface」「Sample.cs」スクリプトをアタッチする。(参考②)

◆Sample.csスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class Sample : MonoBehaviour
{
    void Start()
    {
        GetComponent<NavMeshSurface>().BuildNavMesh();
    }
}

◆参考①

◆参考②

補足ですが、従来はNavigationウィンドウよりBakeしていましたが、動的にBakeする場合は事前のBakeは不要となります。
とはいえ、NavigationウィンドウのAgentsAreasは引き続き使用しますので、忘れずに設定する必要があります。

最後に

いかがでしたでしょうか。
今回はNavMeshAgentの経路を動的にベイクする方法をまとめました。

GetComponent<NavMeshSurface>().BuildNavMesh();

このスクリプトにより動的にビルドが可能ですので、適宜スクリプトに組み込んでみて下さい。
以上、だらはでした。

スポンサーリンク

応用

Posted by daraha_gm