1. はじめに
「Unityでゲームを作るとき、敵キャラやアイテムがプレイヤーを追尾する動きを追加したいことがありますよね。今回は、そんな機能を簡単に実装できる方法を初心者向けに解説します!スクリプトの基本から設定まで丁寧に紹介するので、ぜひ参考にしてください。」
Unityを触ったことがないという方はコチラの記事から見てみてください!
2. 必要な準備
プレイヤーを追尾するオブジェクトを作るためには、いくつかの準備が必要です。以下の手順で進めましょう!
1. Unityプロジェクトの作成
Unityを起動し、新しい3Dプロジェクトを作成します。プロジェクト名は「ChasePlayerExample」など、分かりやすい名前にすると良いでしょう。
2. シーンにオブジェクトを配置
- 床を配置する
- ヒエラルキー(Hierarchy)ウィンドウを右クリックします。
- 「3D Object」→「Plane」を選択します。
- 追尾するオブジェクトを作成
- ヒエラルキー(Hierarchy)ウィンドウを右クリックします。
- 「3D Object」→「Cube」を選択します。
- 作成したCubeの名前を「Chaser」に変更しましょう。
- プレイヤーオブジェクトを作成
- 同じくヒエラルキーウィンドウで右クリックし、「3D Object」→「Cube」を選択します。
- 名前を「Player」に変更します。
- ヒント:Cubeを見やすい色に変更するには、インスペクター(Inspector)ウィンドウで「Mesh Renderer」の「Material」を設定します。
物理特性を追加する
作成したプレイヤーと追尾するオブジェクトに物理特性を追加します。
- インスペクター画面の「AddComponent」ボタンをクリックします。
- 「Rigidbody」を検索して追加します。
3. スクリプトの作成
ここでは、プレイヤーを追尾するオブジェクトの動きを制御するスクリプトを作成します。以下の手順に従って進めてください。
スクリプトの準備
- スクリプトを作成
- プロジェクトウィンドウを右クリックし、「Create」→「C# Script」を選択します。
- スクリプト名を
ChasePlayer
に変更します。
スクリプトを編集する
先ほど作成したChasePlayer
スクリプトをダブルクリックして開きます。Unityエディターでデフォルトのコードエディターが起動します。
以下のコードを入力します。
using UnityEngine;
public class ChasePlayer : MonoBehaviour
{
// プレイヤーのTransformを参照するための変数
public Transform player;
// オブジェクトの移動速度
public float speed = 5.0f;
void Update()
{
// プレイヤーへの方向ベクトルを計算
Vector3 direction = player.position - transform.position;
// ベクトルを正規化して移動方向を決定
direction.Normalize();
// オブジェクトを移動
transform.position += direction * speed * Time.deltaTime;
}
}
2. スクリプトの内容を解説
player
変数- プレイヤー(Sphere)の位置を参照するために使用します。
Transform
型で定義しています。 - この変数は、後ほどインスペクターで設定します。
- プレイヤー(Sphere)の位置を参照するために使用します。
speed
変数- オブジェクトがプレイヤーに向かって移動する速さを制御します。値を調整することで移動速度を変更できます。
Update
メソッド- 毎フレーム実行されるメソッドです。
- プレイヤーの位置と自分の位置との差を計算し、正規化(
Normalize
)して移動方向を決定します。 Time.deltaTime
を掛けることで、フレームレートに依存せず一定の速度で移動します。
3. スクリプトを設定する
- スクリプトをアタッチする
- ヒエラルキーウィンドウで「Chaser」を選択します。
- 作成した
ChasePlayer
スクリプトをドラッグ&ドロップしてアタッチします。
- プレイヤーを設定する
- インスペクターで
ChasePlayer
スクリプトを確認し、Player
フィールドに「Player」(Cube)をドラッグ&ドロップします。
- インスペクターで

4. 実行
準備が整ったら、Unityで実際にプレイヤー追尾オブジェクトが正しく動作するか確認しましょう。
1. 再生モードに切り替え
Unityエディター上部にある再生ボタン(▶)をクリックして、プレイモードに切り替えます。
これで完成です!再生モードを止めるには、もう一度再生ボタン(▶)をクリックしてください。
「プレイヤーを追尾するオブジェクト」がどのように機能するか、試してみてくださいね!
よくある質問(Q&A)
- Qプレイヤーの速度を変更できますか?
- A
はい!スクリプト内の
speed
変数を変更すれば、追跡の速さを簡単に調整できます。
- Qプレイヤーが止まると追跡オブジェクトも止まりますか?
- A
その通りです!スクリプトはプレイヤーの位置に基づいて動作します。
- Q2Dゲームでも使えますか?
- A
このスクリプトは3D用ですが、2D用に応用する場合、
transform.position
やVector2
を使用すれば対応できます。
おすすめのアセット
「Car Chase And Drift Template」は、Unityでカーチェイスやドリフトシーンを作成するためのテンプレートです。初心者から上級者まで幅広く使えます。このテンプレートは、リアルな車の動きやドリフトアクションを簡単に再現できるのが特徴です。
このテンプレートには、すぐに使える車両モデルやコントローラー、エフェクトなどが含まれています。また、物理エンジンを利用してリアルな挙動を実現しており、簡単なカスタマイズも可能です。