【Unity】NavMeshAgentの経路を動的にベイクする方法
どうも、だらはです。
今回は、NavMeshAgentの経路を動的にベイクする方法を紹介します。
実装方法
具体的な実装手順は以下の通りです。
- [Window -> AI -> Navigation -> Bake]のリンク「Learn instead about the component workflow」より、ファイル一式をダウンロードする。(参考①)
- 1のファイルより、「Gizmos」「NavMeshComponents」をUnityのAssets直下にインポートする。
- 空の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ウィンドウのAgentsとAreasは引き続き使用しますので、忘れずに設定する必要があります。
最後に
いかがでしたでしょうか。
今回はNavMeshAgentの経路を動的にベイクする方法をまとめました。
GetComponent<NavMeshSurface>().BuildNavMesh();
このスクリプトにより動的にビルドが可能ですので、適宜スクリプトに組み込んでみて下さい。
以上、だらはでした。
ディスカッション
コメント一覧
まだ、コメントがありません