はじめに
Unityでゲームを作っていると、たくさんのオブジェクトを管理する必要が出てきますよね。例えば、敵キャラやアイテムが増えると、「どれがどれだか分からない!」なんてことも。そんな時に便利なのが「タグ」です!タグを使うと、特定のオブジェクトを簡単に探したり、一括で操作したりできます。
この記事では、Unity初心者でも分かるように、タグの使い方や設定方法を詳しく解説していきます。

初心者の方でも安心して使えるように、手順を丁寧に紹介しますね。それでは、さっそく始めてみましょう!
タグの基本
Unityの「タグ」は、ゲームオブジェクトにラベルを付けるような機能です。このラベルを使うことで、特定のオブジェクトを簡単に識別したり、スクリプトで操作することができます。たとえば、敵キャラクターには「Enemy」、アイテムには「Item」といったタグを付けることで、整理がしやすくなります。
タグの仕組み
タグは、オブジェクトごとに1つだけ設定することができます。デフォルトで用意されているタグもありますが、独自のカスタムタグを作成することも可能です。これにより、ゲームに合わせた管理がしやすくなります。

タグの用途
- オブジェクトの識別
特定のオブジェクトをタグで分けて、スクリプト内で条件分岐に使えます。 例: 「タグが『Enemy』ならダメージ処理を実行」 - グループ操作
同じタグが付いた複数のオブジェクトを一括で操作できます。 例: 敵キャラクターを全員非表示にする。 - 衝突判定
衝突イベントで「タグ」に基づいて処理を分けることが可能です。
デフォルトタグ一覧
Unityにはあらかじめいくつかのタグが用意されています:
- Untagged: タグなし(初期設定)
- Respawn: リスポーンポイント用
- Finish: ゴール地点などに使用
- MainCamera: メインカメラに自動で設定されるタグ
- Player: プレイヤー用
もちろん、これら以外にも自分でタグを追加して使えます。
タグの設定方法

ここでは、Unityで「タグ」を作成し、それをオブジェクトに設定する具体的な方法を説明します。初心者の方でも簡単にできるように、手順を一つずつ見ていきましょう!
手順1: タグを作成する
まず、カスタムタグを作成してみましょう。
- オブジェクトを選択する
ヒエラルキー(Hierarchy)ウィンドウから、タグを設定したいオブジェクトを選択します。 - タグ編集メニューを開く
インスペクター(Inspector)ウィンドウの「Tag」ドロップダウンメニューをクリックします。 - 「Add Tag…」を選択
ドロップダウンの一番下にある「Add Tag…」をクリックします。 - タグを追加
タグ管理画面が開きます。右上にある「+」ボタンをクリックして新しいタグを追加します。 - タグ名を入力
作成したいタグ名を入力します(例: “Enemy”, “Item”, “Player” など)。 - 保存
入力したら「Save」をクリックしてタグを保存します。

手順2: タグをオブジェクトに設定する
作成したタグをオブジェクトに適用します。
- オブジェクトを選択
再度ヒエラルキーウィンドウからタグを設定したいオブジェクトを選択します。 - タグを設定
インスペクターウィンドウの「Tag」ドロップダウンメニューをクリックし、リストから作成したタグを選択します。 - 完了
選択したオブジェクトにタグが設定されました。

例: タグを使ったオブジェクトの分類
- 敵キャラクター: Enemy タグ
- プレイヤー: Player タグ
- アイテム: Item タグ
これで、ゲーム内のオブジェクトを簡単に分類して管理できるようになります!
タグを活用したスクリプトの作成例

Unityでは、タグを活用することで、スクリプトを使った効率的なオブジェクト操作が可能になります。ここでは、具体的なスクリプト例を通じて、タグの便利な使い方を解説します。
例1: 衝突判定でタグを使う
ゲーム内で特定のオブジェクト(例えば敵)と衝突したときに、何かを起こしたい場合に役立ちます。
スクリプト例
using UnityEngine;
public class CollisionTagCheck : MonoBehaviour
{
void OnCollisionEnter(Collision collision)
{
// 衝突したオブジェクトのタグを確認
if (collision.gameObject.tag == "Enemy")
{
// 敵に衝突した場合、そのオブジェクトを削除
Destroy(collision.gameObject);
Debug.Log("Enemyを倒しました!");
}
}
}
解説:
collision.gameObject.tag
を使って衝突したオブジェクトのタグを確認します。- タグが “Enemy” の場合、そのオブジェクトを
Destroy
で削除します。
例2: タグを使って複数のオブジェクトを一括操作する
同じタグを持つオブジェクトを一括で管理したい場合に便利です。
スクリプト例
csharpコードをコピーするusing UnityEngine;
public class DeactivateEnemies : MonoBehaviour
{
void Start()
{
// タグが "Enemy" のすべてのオブジェクトを取得
GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
foreach (GameObject enemy in enemies)
{
// それぞれの敵を非アクティブ化
enemy.SetActive(false);
}
Debug.Log($"非アクティブ化した敵の数: {enemies.Length}");
}
}
解説:
GameObject.FindGameObjectsWithTag
を使ってタグが “Enemy” のオブジェクトをすべて取得。SetActive(false)
を使って非アクティブ化(画面から消えるが削除はされない)。
例3: タグを条件にしたカメラ追尾
プレイヤーだけを追尾するカメラを作成します。
スクリプト例
using UnityEngine;
public class CameraFollow : MonoBehaviour
{
public float speed = 5.0f; // カメラの追尾速度
void Update()
{
// タグが "Player" のオブジェクトを取得
GameObject player = GameObject.FindGameObjectWithTag("Player");
if (player != null)
{
// プレイヤーの位置にカメラを追尾
Vector3 targetPosition = player.transform.position;
transform.position = Vector3.Lerp(transform.position, targetPosition, speed * Time.deltaTime);
}
}
}
解説:
GameObject.FindGameObjectWithTag
を使ってプレイヤー(”Player” タグ)を取得。- カメラがプレイヤーをスムーズに追尾するように
Vector3.Lerp
を使用。
タグを使うときの注意点

タグはUnityでオブジェクトを効率的に管理する便利な機能ですが、使い方を間違えるとパフォーマンスや管理が難しくなる場合があります。ここでは、タグを使う際の注意点やベストプラクティスを紹介します。
1. タグの命名規則を決める
タグ名はプロジェクト全体で一貫性を持たせることが大事です。
悪い例:
enemy1
、enemy2
のように番号を付ける。- 記号やスペースを含む名前。
良い例:
Enemy
、Player
、Item
などシンプルで直感的な名前。- 大文字と小文字を統一する(例: 全て先頭大文字など)。
理由: 一貫性がないと後から管理が煩雑になります。
2. タグは1つのオブジェクトに1つだけ
Unityでは1つのオブジェクトに複数のタグを設定することはできません。異なるグループに属する場合はタグだけでなく、レイヤー(Layer)やカスタムプロパティも活用しましょう。
対策: 複数の条件で分類したい場合、スクリプトで追加の条件を実装するか、レイヤー機能を併用。
3. タグの誤入力に注意
スクリプトでタグ名を手入力する場合、スペルミスが原因で動作しないことがあります。
悪い例:
if (gameObject.tag == "enemy") // 本当は "Enemy"
良い例:
if (gameObject.CompareTag("Enemy"))
CompareTag
を使うと、間違いを防ぎ、パフォーマンスも向上します。
4. パフォーマンスの考慮
GameObject.FindGameObjectsWithTag
やGameObject.FindGameObjectWithTag
は毎フレーム呼び出すと処理が重くなります。
対策:
- 初期化時(
Start
やAwake
)にタグ付きオブジェクトをリストに保存しておき、必要に応じてリストを利用。 - Update関数内で頻繁に呼び出すのを避ける。
5. タグの削除や変更に注意
一度設定したタグを削除したり名前を変更すると、それを使用していたスクリプトに影響が出ます。
対策:
- タグを変更・削除する前に、どのスクリプトで使用されているか確認。
- 必要に応じてタグ名を変更した後、すべてのスクリプトを更新。
6. タグの使用上限
Unityではタグを最大10,000個まで作成可能ですが、実際には数十~数百個程度に抑えるのが理想です。タグが多すぎると、管理が複雑になり逆に非効率になる場合があります。
まとめ
Unityの「タグ」を使えば、オブジェクトの管理がグッと効率的になります。今回紹介した方法を活用して、ゲーム制作をもっとスムーズに進めてみてください!
Unity初心者でも簡単!アセットを活用してゲーム開発を加速しよう!
Unity Asset Storeには、初心者でもすぐに使える便利なアセットがたくさんあります。
でも「どれを使えばいいの?」「どう活用すればいいの?」と迷っていませんか?
この記事では、初心者向けのおすすめアセットとその活用法を詳しく解説!
ゲーム開発をもっと楽しく、効率的に進めたいなら必見です!
よくある質問 (Q&A)
- Qタグは何個まで作成できますか?
- A
Unityでは最大10,000個まで作成可能です。
- Qタグを削除する方法は?
- A
「Add Tag…」メニューから不要なタグを選択して削除できます。
- Qスクリプトでタグを設定することは可能ですか?
- A
はい、以下のコードで可能です:
gameObject.tag = "Enemy";