Unity

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

投稿日:




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の処理時間の約半分で済みます。

 

 

 

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

Unityの教科書 Unity2019完全対応版  2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

Unityの教科書 Unity2019完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

北村 愛実
5,650円(08/09 11:00時点)
発売日: 2019/06/28
Amazonの情報を掲載しています

当サイト(your-3d.com)の管理人のゆあーさんと申します。

このサイトでは、私が3DCG関連ソフトやプログラミングについて調べたことを共有出来たらいいなと思い開設しました。

読んでくださった皆様のお役に立てたら幸いです。

 

YouTube: ゆあーさんチャンネル ほぼやってない

Twitter: @yoursunpy

Booth: https://your-3d.booth.pm/

 

Amazonリンク: https://amzn.to/2LpZCJb

上記リンクから買い物していただくことで購入金額の一部が僕に入ります。直接的なメリットはないですが、このブログを通して還元していけたらと思います。ご支援くださる方はよろしくお願いします。m(_ _)m

 

プロフィールページ作りました。
https://your-3d.com/profile/