タグは、1 つまたは複数の ゲームオブジェクト に割り当てることができる参照ワードです。たとえば、プレイヤーが制御するキャラクターには “Player” タグを、プレイヤーが制御しないキャラクターには “Enemy” タグを定義します。シーン内で収集するアイテムは “Collectable” タグを使って定義します。
タグは、スクリプトを行うときにゲームオブジェクトを識別するのに役立ちます。タグにより、スクリプトのアクセス可能なプロパティにゲームオブジェクトをドラッグアンドドロップで手動で追加する必要がありません。それにより、複数のゲームオブジェクトで同じスクリプトコードを使用する場合に、時間を節約できます。
タグは、コライダー 制御スクリプトのトリガーに有用です。トリガーは、プレイヤーが何と相互作用しているのか (敵、小道具、アイテムなど) を判断する必要があるからです。
GameObject.FindWithTag() 関数を使用して指定のタグをもつゲームオブジェクトを探すように設定できます。以下の例では、GameObject.FindWithTag()
を使用し、“Respawn” タグを持つゲームオブジェクトの位置で respawnPrefab
をインスタンス化します。
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;
}
}
Inspector では、ゲームオブジェクトの名前の下に Tag と Layer のドロップダウンメニューがあります。
新しいタグを作成するには、Add Tag… を選択します。すると、Inspector で Tag and Layer マネージャー が開きます。 いったんタグに名前を付けると、タグの名前を後で変更することはできません。
レイヤーはタグと似ていますが、シーン内でゲームオブジェクトをどのようにレンダリングするかを決めるために使用されます。詳細は、レイヤー のドキュメントを参照してください。
Inspector のゲームオブジェクトの名前のすぐ下に Tag と Layer のドロップダウンメニューがあります。ゲームオブジェクトに既存のタグを適用するには、Tags ドロップダウンを開いて適用するタグを選択します。すると、ゲームオブジェクトはこのタグに関連付けられます。
ゲームオブジェクトに割り当てることができるタグは 1 つだけです。
Unity には Tag and Layer マネージャーに表示されないビルトインタグがいくつかあります。
任意の単語をタグとして使用できます。短い句を使用することも可能です。ただし、その場合は、タグ全体を表示するために、Inspector の幅を広げる必要があるかもしれません。