【Unity】Tagを使って判定処理をする

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

どうもなおゆです。今回はタグの使い方です。

今回のテーマの流れ

バナナをタップした時に爆発するようします。流れはこうです。

  1. オブジェクトをタップするとEvent Triggerが作動
  2. クリックされたオブジェクトのTagを判定
  3. もしString型変数とTagが同じだった場合爆発する


Tagを判定する手法は2通り

  1. GameObject.tagの参照を呼び出す方法
  2. GameObject.CompareTagを使う方法

結論から言うとどちらを使っても同じ結果を出すことができます。ただし、処理速度でいうと2のCompareTagを使った方が早いので、今回はCompareTagを使っていきます。

用意したオブジェクトとコンポーネント等

  • バナナのオブジェクト
  • Tagの種類を判定する為のScript
  • Event Trigger
  • コライダー
  • 爆発エフェクト用のプレハブ

視覚化するとこんな感じ

Tagの付け方

まずは新規にTagを作ってオブジェクトに設定します。

インスペクター –> Tag –> タグを追加 –> –> Bananaと入力

一度戻ってTagからBananaを選択。

Tag判定処理用のコード

予め用意しておいたstring型の変数に”Banana”を代入しておき、取得したTagも”Banana”だった場合、爆発する。というコードを書きます。

新しくスクリプトを作成し下のコードを書いたら、バナナにアタッチします。

バナナオブジェクトのヒエラルキー –> コンポーネントを追加 –> スクリプト

public class FoodScript : MonoBehaviour
{
 public GameObject explosion; // 爆発プレハブをセット
 private string answerTag = "Banana"; 

 public void onClickAct()
     {
        if (this.gameObject.CompareTag(answerTag)) // Tagと変数が同じだったら
        {
            Instantiate(explosion, transform.position, Quaternion.identity); // 爆発
        }

     }
}

Event Triggerの付け方

Event Triggerコンポーネントをヒエラルキーから付けていきます。

バナナオブジェクトのヒエラルキー –> コンポーネントを追加 –> イベント –> イベントトリガー

コンポーネントを付けたらクリックのイベントを追加します。

Event Trigger –> 新しいイベントタイプを追加 –> Pointer Click

最後にバナナオブジェクトをアタッチして、クリック時に呼び出されるメソッドを選択します。まずは、「なし(オブジェクト)」にバナナオブジェクトをドラッグアンドドロップしてください。

✚ –> なし(オブジェクト)にバナナを追加 –> No Function –> 作ったスクリプト名 –> onClickAct

結果

それではどうなるかバナナをクリックしてみましょう。

上手くいきましたね。ではまた!

コメント

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