Unity での NavMeshAgent の操作

Unity の NavMeshAgent は、ゲーム内のキャラクターやオブジェクトのパスファインディングとナビゲーションを実装できる強力なコンポーネントです。Unity の組み込みナビゲーション システムを利用して、NavMesh サーフェス上のパスを計算します。このチュートリアルでは、コード例を使用して NavMeshAgent のセットアップと使用の基本を説明します。

前提条件

  • Unity interface およびゲーム開発概念の基本的な理解。
  • Unity システムに がインストールされている (バージョン 2017 以降)。

NavMesh をセットアップする Unity

NavMeshAgent の使用に入る前に、シーンに NavMesh をセットアップする必要があります。

  1. NavMesh サーフェスを作成します。

    • 'GameObject -> 3D Object -> NavMesh Surface' に移動します。これにより、'NavMeshSurface' コンポーネントがアタッチされた新しいゲームオブジェクトが作成されます。
    • シーンの必要に応じて、NavMesh Surface コンポーネントの設定を調整します。
  2. NavMesh をベイクする:

    • 'NavMesh Surface' コンポーネントの 'Bake' ボタンをクリックして、シーンの NavMesh を生成します。
    • 正確な経路探索を可能にするために、環境 (地形、障害物など) が適切に構成されていることを確認してください。

コードでの NavMeshAgent の使用

ここで、NavMeshAgent を使用して GameObject を動かすコードを書いてみましょう。

ステップ 1: NavMeshAgent をゲームオブジェクトにアタッチする

  • Unity エディターで NavMeshAgent コンポーネントをゲームオブジェクトにアタッチします。これを行うには、ゲームオブジェクトを選択し、'Add Component' をクリックし、'NavMeshAgent' を追加します。

ステップ 2: 移動用のスクリプトを作成する

using UnityEngine;
using UnityEngine.AI;

public class PlayerController : MonoBehaviour
{
    private NavMeshAgent navMeshAgent;

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

    void Update()
    {
        // Check for player input or any other conditions to trigger movement
        if (Input.GetMouseButton(0)) // Example: Move towards mouse click position
        {
            MoveToClickPosition();
        }
    }

    void MoveToClickPosition()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            // Move NavMeshAgent towards the clicked position
            navMeshAgent.SetDestination(hit.point);
        }
    }
}

ステップ 3: シーンをセットアップしてテストする

  • NavMeshAgent を含むゲームオブジェクトと添付のスクリプトがシーンに存在することを確認してください。
  • Unity エディターで Play を押し、動作を観察します。
  • 'NavMesh' サーフェス上の任意の場所をクリックすると、ゲームオブジェクトがその位置に向かって移動するはずです。

まとめ

このチュートリアルでは、Unity での経路検索とナビゲーションのために NavMeshAgent を設定して使用する方法を学びました。これらの手順とコード例に従うことで、Unity の組み込みナビゲーション システムを使用してゲーム内のキャラクターやオブジェクトの基本的な動きを実装できます。

おすすめの記事
Unity での NavMesh エージェントの実装
Unity で AI サポートを使用して FPS を作成する方法
Unity でプレイヤーをフォローする NPC を作成する
Unity で鹿の AI を作る方法
Unity Asset Store パッケージのレビュー - Zombie AI システム
Unity での敵の AI の実装
Unity 2D プラットフォーマーに敵を追加