Tag (タグ)はひとつ以上のGameObject に関連付ける言葉です。例えば,“Player” と“Enemy” タグをプレイヤー制御可能なキャラクターと非プレイヤー制御可能なキャラクターに各々定義したり,“Collectable” タグをプレイヤーがScene で回収可能なアイテムに定義したり,と続いていきます。タグの目的は明確にGameObjectをスクリプティングにおいて識別することです。スクリプトのコードを書くときに,探したいタグに属するゲームオブジェクトを探すことが出来ます。これはGameObject.FindWithTag() 関数を使用することで実現出来ます。
例えば:
// Instantiates respawnPrefab at the location
// of the game object with tag "Respawn"
var respawnPrefab : GameObject;
var respawn = GameObject.FindWithTag ("Respawn");
Instantiate (respawnPrefab, respawn.position, respawn.rotation);
これにより,GameObjectをスクリプトの表示されているパラメータに,手動でドラッグ&ドロップせずに済み,これは複数のGameObjectで同じスクリプトのコードが使用されている場合に便利で無駄な作業時間を省けます。もうひとつの例はTrigger Collider -> class-SphereCollider 制御スクリプトで,プレイヤーが敵と接触したのか,あるいはランダムな障害物か拾えるアイテムに接触したのか,判定することが必要な場合もあげられます。タグはこのようなテストも簡単にします。
Inspector はタグおよびLayer -> Layers ドロップダウンメニューをGameObjectの名前のすぐ下に表示します。GameObjectにタグを適用するには,単にTagsドロップダウンメニューを開き,必要なタグを選択します:
これによりGameObjectはこのタグと関連付けされます。
新規タグを作成するには,ドロップダウンメニューの終わりの“Add new tag…” オプションをクリックします。これにより,InspectorでTag Manager を開きます。Tag Managerはここ で説明されています。
レイヤーはタグと似ているようですが,UnityがSceneのGameObjectをレンダリングする方法を決めるために使用されます。詳細についてはLayers を参照下さい。
GameObjectはひとつのタグのみ割り当てることが出来ます。
好きな言葉をタグに使用できます。(短いフレーズにすることもできますが,タグの名前を全てみるためにInspectorの幅を広げる必要があるかもしれません。)