【Unity】タグの使い方【複数のゲームオブジェクト処理に便利】

Unity
この記事は約4分で読めます。



Unityのタグの使い方について解説します。タグを知っているとできることがたくさん増えるのでぜひ覚えておきましょう。

 

タグはこんな場面で便利です。

複数のゲームオブジェクトをまとめて扱いたいとき

特定のゲームオブジェクトを指定したいとき

 

 

タグはゲームオブジェクト1つに1つずつ設定できます。複数のゲームオブジェクトに同一のタグを設定すれば複数のゲームオブジェクトをまとめて処理できます

この記事では初めにタグの付け方、追加方法を解説し、後半ではタグの機能を使ったスクリプトの例をいくつか挙げていきますのでぜひ勉強してみてください!

 

スポンサーリンク

タグの追加方法

まず初めにゲームオブジェクトへタグを付ける方法についてです。

タグ付けの手順

1.タグを付けたいゲームオブジェクトをクリック

2.Inspector > ゲームオブジェクト名の下部のtag > 付けたいタグを設定

 

デフォルトでは以下のようなタグがあります。

デフォルトのタグに適したものがない場合はタグを自作します。タグはいくつ作っても大したデメリットはないので自分のわかりやすいタグ名を付けましょう。

 

タグの追加手順

1.ゲームオブジェクトのInspectorからTag > Add Tagをクリック

 

2.Tag & Layers > Tags > +(プラス)をクリック > タグ名を入力しSave

 

3.再度タグメニューを開くと新しいタグが作成される

 

 

スポンサーリンク

タグを利用したスクリプト【コピペOK】

タグ機能を利用したスクリプトをいくつかまとめました。

タグでゲームオブジェクトを検索

タグでゲームオブジェクトを検索できます。

複数のゲームオブジェクトを検索する場合

このスクリプトはゲームオブジェクトの配列型GameObject[]が返されます。

なので処理時はFor文やWhile文でループさせて処理するのが手軽です。

以下のように複数のゲームオブジェクトを用意し、タグ検索で取得したゲームオブジェクトの名前をConsoleへ出力できます。

 

Consoleへの出力は以下のようになります。

4つすべてを取得できていますね。これをゲームオブジェクトの名前で検索していたらと思うとおそろしい…

以外だったのがゲームオブジェクトの格納順がHierarchyの並びとは違うことです。予想ではCube->Cube(1)->Cube(2)->Cube(3)に出力されると思っていたのが、上のような順に出力されました。

ここらへんは調べようとするよ沼になりそうなので目をつむっておきます。気になる方は調べてみてください。

 

タグでゲームオブジェクトを判別

個人的によく使うのがタグとIF文を利用してゲームオブジェクトを判別するスクリプトです。

例えば、使わないゲームオブジェクトを判別して削除したり、特定のゲームオブジェクトが衝突したときに処理したりするときに使えます。

ゲームオブジェクトの判別には、CompareTag()を使います。

上の例はゲームオブジェクトのタグがtag1の場合にゲームオブジェクトを削除します。

 

ちなみに、タグの判別にはgameObject.tag == “string tag”もありますが、CompareTag()の方が早いとのこと。詳しく知りたい方は下記の記事を参考に。

CompareTag()はgameObject.tagの処理時間の約半分で済みます。

 

タグを覚えると複数ゲームオブジェクトの処理が楽にできるのでぜひ覚えておきましょう!

タイトルとURLをコピーしました