どうもなおゆです。今回はタグの使い方です。
今回のテーマの流れ
バナナをタップした時に爆発するようします。流れはこうです。
- オブジェクトをタップするとEvent Triggerが作動
- クリックされたオブジェクトのTagを判定
- もしString型変数とTagが同じだった場合爆発する
Tagを判定する手法は2通り
- GameObject.tagの参照を呼び出す方法
- 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
結果
それではどうなるかバナナをクリックしてみましょう。
上手くいきましたね。ではまた!
コメント