タグ は複数の ゲームオブジェクト に関連付ける単語です。例えば、“Player” と “Enemy” タグをプレイヤーが制御可能なキャラクターとそうでないキャラクターに各々定義したり、“Collectable” タグを、プレイヤーが__シーン__ で回収可能なアイテムに定義したり等です。コードを書くときに、特定のタグが付いている GameObject を探すために利用できます。これには GameObject.FindWithTag() 関数を使用します。
例えば、
// Instantiates respawnPrefab at the location
// of the game object with tag "Respawn"
//JS
var respawnPrefab : GameObject;
var respawn = GameObject.FindWithTag ("Respawn");
Instantiate (respawnPrefab, respawn.position, respawn.rotation);
//C#
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public GameObject respawnPrefab;
public GameObject respawn;
void Start() {
if (respawn == null)
respawn = GameObject.FindWithTag("Respawn");
Instantiate(respawnPrefab, respawn.transform.position, respawn.transform.rotation) as GameObject;
}
}
タグを使用することで、ゲームオブジェクトをインスペクターに表示されているパラメーターへドラッグ&ドロップせずに済み、複数のゲームオブジェクトで同じコードが使用されている場合に便利です。もうひとつの例は TriggerCollider をコントロールするスクリプトで、プレイヤーが敵と、あるいは障害物か回収可能なアイテムに接触したのか、判定することができます。タグはこのようなテストも簡単にします。
インスペクター では Tag and Layer->Layers のドロップダウンメニューがゲームオブジェクトの名前のすぐ下に表示されています。ゲームオブジェクトにタグを適用するには、単に Tag ドロップダウンメニューを開き、必要なタグを選択します。
これによりゲームオブジェクトはこのタグと関連付けされます。
新規タグを作成するには、ドロップダウンメニューの一番下にある “Add Tag…” オプションをクリックし、 Tag Manager を開きます。Tag Manager に関しては タグとレイヤー を参照してください。
レイヤーはタグと似ているようですが、レイヤーは、Unity がシーンのゲームオブジェクトをレンダリングする方法を決めるために使用されます。詳細については レイヤー を参照してください。
ゲームオブジェクトに割り当てることができるタグは一つだけです。
好きなフレーズをタグに使用できます。(長いフレーズにすることもできますが、タグの名前をすべてみるためにインスペクターの幅を広げる必要があるかもしれません。)