ゲームオブジェクトを非アクティブにする
静的ゲームオブジェクト

タグ

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はひとつのタグのみ割り当てることが出来ます。

  • UnityはTag Managerで表示されない内蔵タグをいくつか保有しています:
    • “Untagged”
    • “Respawn”
    • “Finish”
    • “EditorOnly”
    • “MainCamera”
    • “Player”
    • “GameController”.
  • 好きな言葉をタグに使用できます。(短いフレーズにすることもできますが,タグの名前を全てみるためにInspectorの幅を広げる必要があるかもしれません。)

ゲームオブジェクトを非アクティブにする
静的ゲームオブジェクト