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エディター上部にある再生ボタン(▶)をクリックして、プレイモードに切り替えます。

これで完成です!再生モードを止めるには、もう一度再生ボタン(▶)をクリックしてください。
「プレイヤーを追尾するオブジェクト」がどのように機能するか、試してみてくださいね!
🧠【Emerald AI 】で賢い敵キャラを秒速で実装しよう!
「プレイヤーを見つけて追いかける」「仲間と連携して攻撃」「警戒→戦闘→逃走までの一連の行動」…
そんな本格的なAIキャラクターの行動パターンを、あなたのゲームにノーコードで追加できるのがこの【Emerald AI 2025】です!
▶ 無料のNavMeshと組み合わせれば、プロ級のAI追跡・パトロールが即完成!
▶ ステートマシン&ビヘイビアツリーの知識がなくても大丈夫!
▶ 視界・音・攻撃範囲・アニメーションまで、ビジュアル設定だけで思い通り!
初心者でも安心なドキュメント&チュートリアル付き。
あなたのゲームを一気に進化させる最強AIアセット、今すぐチェック👇
👉 Emerald AI を今すぐ見る
あわせて読みたい
- 🔄 Unityで簡単AI!プレイヤーを追いかける敵キャラを作る方法
⇒ NavMeshなどを使わずに、スクリプトでAI追跡処理を組みたい人におすすめ! - 🚶♂️ Unity初心者向け!プレイヤーの正面にRaycastを出してヒットを確認する方法
⇒ プレイヤーの前方にあるターゲットとの接触判定が必要な場合に便利なテクニック! - 🧲 Unity初心者向け!オブジェクトに触れるとスピードアップする仕組みを作ろう
⇒ 追跡アクションに「スピードアップ」ギミックを追加したい時に役立ちます。 - 🕹 Unity初心者向け!プレイヤーが乗ると落下する床を作る方法
⇒ 追跡中に地形ギミックを追加して、アクション性を高めたい人向け。 - 🎯 Unity初心者必見!キーを長押ししている間のみ、プログラムを実行させる
⇒ 特定キーを押している間だけ動作する仕組みで、プレイヤー行動をコントロール!
よくある質問(Q&A)
- Qプレイヤーの速度を変更できますか?
- A
はい!スクリプト内の
speed変数を変更すれば、追跡の速さを簡単に調整できます。
- Qプレイヤーが止まると追跡オブジェクトも止まりますか?
- A
その通りです!スクリプトはプレイヤーの位置に基づいて動作します。
- Q2Dゲームでも使えますか?
- A
このスクリプトは3D用ですが、2D用に応用する場合、
transform.positionやVector2を使用すれば対応できます。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。