Unityな日々(Unity Geek)

Unityで可視化アプリを開発するための試行錯誤の覚書

TagとLayer

gameObjectにはTagとLayerを設定できる。
Tagは、主にGameObjectを特定する(名前の代わり)に使用する。
Layerは、主にRendering設定のグループ分けに使う。例えば、あるカメラで見える/見えない、あるライトで照らす/照らさない、等)

次のように設定する

1)新規Tagの作成
対象オブジェクトを選択し、InspectorビューでTagをクリック
f:id:yasuda0404:20120812165019p:plain

ドロップダウンから、"Add Tag..."を選択
f:id:yasuda0404:20120812165051p:plain

Tag Managerが開く。"Tag"を展開し、任意のタグ名を入力する
f:id:yasuda0404:20120812165105p:plain

Inspectorに戻り、さきほど作成したタグを選択
f:id:yasuda0404:20120812165541p:plain


2) 新規Layerの作成
対象オブジェクトを選択し、InspectorビューでLayerをクリック
ドロップダウンから、"Add Layer..."を選択
f:id:yasuda0404:20120812165114p:plain

Tag Managerが開く。"User Layer"の空きカラムに任意のレイヤー名を入力する
f:id:yasuda0404:20120812165132p:plain

Inspectorにもどり、さきほど作成したレイヤーを選択
f:id:yasuda0404:20120812165624p:plain

                                                  • -

タグ名は対象GameObjectにアタッチしたスクリプト内で、"tag"で取得できる。("name"は対象オブジェクトの名前)

print("tag="+tag);	//print tag of GameObject
print("name="+name); // print name of GameObject

タグ名の評価は、.CompareTag() メソッドを使うと便利。

function OnTriggerEnter (other : Collider) {
    if (other.CompareTag ("Player")) {
        Destroy (other.gameObject);
    }
}

カメラやライトの適用・非適用をタグで選択するには、"Culling Mask"の項目をクリックし、ドロップダウンでチェックを付ける/外すことで行う。
f:id:yasuda0404:20120812172707p:plain