Unity事例ノート

UNITY

プレハブをNavigationで自動移動

NavMeshAgentを利用した自動移動を、生成されたPrefabオブジェクトでも出来るしくみを作成してみましょう。

AIナビゲーションで追いかけるターゲットは、Prefabのスクリプトから取得するようにします。

*Unity2022.3.28で作成しています。

NavMeshAgentで自動追尾できるPrefab

まずはAI Navigationのインストールから行います。

ウィンドウ > パッケージマネージャー

Unityレジストリー > AI Navigation > インストール

Plane(平面)とCylinder(シリンダー)を作成して、配置します。

PlaneとCylinderの静的にチェックを入れます。

ベイクする対象物としてPlaneを選択。

コンポーネントを追加 > Navigation > NavMeshSurface

Bakeをクリック。

移動可能エリアが表示されます。

追いかけるターゲットとして、Sphereを作成しました。

Cubeを作成します。

Navigation > NavMeshAgentを追加。

CubeMove.csを作成し、Cubeに追加します。

CubeMove.csを記述します。

Cubeをプロジェクトビューにドラッグ&ドロップして、プレハブ化します。

Cubeの元データは削除しましょう。

空のオブジェクトを作成します。

ここにプレハブ生成のプログラムを作成することにします。

CloneScript.csを作成し、GameObject(空のオブジェクト)に追加します。

CloneScript.csを記述します。

プレハブのフィールドに、Cubeを入れます。

ゲームプレイしてみましょう。

生成されたプレハブがNavigationによって、自動でターゲットに向かって移動します。

プレハブでは、GameObject.Find を使って、目的地となるオブジェクトを取得するようにしましょう。

SCHOOL教室案内