Unity事例ノート

UNITY

ナビメッシュエージェントを使った追尾機能

NavMeshAgentを使って、プレーヤーを追いかける機能をつくりましょう。

AIによる自動追尾で、障害物を避けながら、プレーヤーめがけて追いかけてきます。

障害物をのぞいた移動範囲を検出するので、よりゲーム性の高い追尾が可能です。

関連記事:
【Unity C#】近づくと追いかけられる(NavMeshAgent)
【Unity C#】マウスカーソルを追いかけるオブジェクト
【Unity C#】3D空間でプレーヤーを追いかけるオブジェクト
【Unity C#】ベイクできない場合の留意点
【Unity C#】カメラを旋回しながら自動追従させる

ナビゲーションつくる

平面を作成して色をつけ、静的にチェックを入れます。

Cubeを作成し、位置とサイズを変更。静的にチェックを入れます。

Cubeにも色をつけます。

上から見ると、このように配置されています。

Cubeを複製してCube(1)を作成し、Y軸を90°回転します。

上から見ると、このように配置されています。

ナビゲーションウィンドウを追加します。

ナビゲーションのBakeボタンをクリックします。

上から見ると、このようにエージェントが表示されています。

プレーヤーの作成

続いて、プレーヤーを作成しましょう。

Cubeを作成し、名前をPlayerに変更します。

位置を変更して、リジッドボディを追加します。

上から見ると、このように配置されています。

PlayerMove.csを作成し、Playerに追加します。

PlayerMove.csを記述します。

十字キーで、プレーヤーを操作できるようになります。

NavMeshAgentの作成

続いて、追いかけてくる敵キャラを作成しましょう。

Sphereを作成して色を付け、位置を変更します。

上から見ると、このように配置されています。

EnemyMove.csを作成し、Sphereに追加します。

EnemyMove.csを記述します。

using UnityEngine.AI; を忘れずに書いておきましょう。

ターゲットのフィールドに、Playerを入れます。

ナビメッシュエージェントを追加します。

コンポーネントを追加 > ナビゲーション > ナビメッシュエージェント

ゲームプレイして、プレーヤーを動かしてみましょう。

Sphereが、Playerを追いかけてきます。

関連記事:
【Unity C#】近づくと追いかけられる(NavMeshAgent)
【Unity C#】マウスカーソルを追いかけるオブジェクト
【Unity C#】3D空間でプレーヤーを追いかけるオブジェクト
【Unity C#】ベイクできない場合の留意点
【Unity C#】カメラを旋回しながら自動追従させる