Unity事例ノート

UNITY

近づけば追いかけてくる敵(ナビゲーション)

敵に近づくと追いかけてきて、離れるとストップする仕組みを、NavMeshAgentを使って作成してみましょう。

プレーヤーを操作し、敵のエリア内(半径)に入ると、追いかけてきます。

敵から逃げて、距離を取れば、追いかけずに動きが止まります。

関連記事:
【Unity C#】エリアに入れば追いかけられる(NavMeshAgent)
【Unity C#】特定の座標まで行けば追いかけてくる(NavMeshAgent)
【Unity C#】特定エリアに近づくと追いかけてくる
【Unity C#】一定距離から外れたら実行する

距離を取れば追いかけられない

PlaneとCylinderをいくつか作成し、適当なところに配置します。

すべてのオブジェクトの静的にチェックを入れます。

ナビゲーションウィンドウから、Bakeをクリックします。

シーンビューでは、このようにナビメッシュが表示されました。

ナビメッシュの範囲を通って、敵が追いかけてくることになります。

敵キャラであるSphereを作成し、端の方に配置します。

Sphereコライダーの半径を5にして、トリガーにするにチェックを入れます。

NavMeshAgentを追加します。

コンポーネントを追加 > ナビゲーション > NavMeshAgent

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

EnemyMove.csを記述します。

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

プレーヤーの作成

続いて、プレーヤーとしてCubeを作成し、適当なところに配置。

リジッドボディを追加します。

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

PlayerMove.csを記述します。

Sphereを選択し、ターゲットのフィールドに、Cubeを入れます。

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

敵のコライダー半径5以内に入れば追いかけてきて、そこから離れると敵は停止します。

関連記事:
【Unity C#】エリアに入れば追いかけられる(NavMeshAgent)
【Unity C#】特定の座標まで行けば追いかけてくる(NavMeshAgent)
【Unity C#】特定エリアに近づくと追いかけてくる
【Unity C#】一定距離から外れたら実行する