UnityでNavMeshの使い方

1. Blenderとかで作成したMeshをUnityに配置します。

2. Navigation Staticに変更します。

3. Bakeします。

4. 適当なオブジェクトを配置してNavMeshAgentのコンポーネントを追加します。

5. 後は、自由にプログラミングして使ってください。

例えば、次のような感じにするとNavMeshAgentを目的地(destination)まで移動させることができます。

public class Example : MonoBehaviour
{
  void Start()
  {
    var agent = GetComponent<NavMeshAgent>();
    agent.destination = new Vector3(4f, 0f, -4f);
  }
}
NavMeshの動作サンプル

障害物を設置したい時はcarving=trueにしたNavMeshObstacleを配置します。

NavMeshObstacleの動作サンプル

NavMeshObstacleは実行中にも移動することができます。
いろいろ試して遊んでみてください。

リンク

Unity – Scripting API: NavMesh
https://docs.unity3d.com/ScriptReference/AI.NavMesh.html

関連記事

動的にNavMeshを生成できるUnityのアセット
UnityでNavMesh使っていますか? とても便利なツールですが、予めBakeしておく必要があり、動的に生成するマップで使い難いという難点がありました。そこで悩んでいたところ、動的に生成したMeshでも利用可能なアセットが公開されているそうです。 GitHub - Unity-Technologies/NavMeshComponents: High Level API Compo...

コメントを残す

メールアドレスが公開されることはありません。