Unity解説
オブジェクトの当たり判定の処理
Tagによるオブジェクトの判定
今回は、Tagというものを使って、接触したオブジェクト別の処理をできるようにしてみます。
こっちのオブジェクトに触れた時はこの処理、あっちのオブジェクトに触れた時はあの処理とか、それぞれ別の処理をさせるんだね。
はい、その通りです✨
まず、Tagとは、オブジェクトを判別するために割り当てることができるキーワードみたいなもので、オブジェクト一つに一つのTagをつけることができます。
【参考】
キャラクターとステージは事前に準備しているものを使います。キャラクターにはRigidbodyとCapsule Colliderを適用しておきます。
☑キャラクターとステージを事前に準備
接触をした時のそれぞれの動きを見るために、Sphereを二つ作成します。名前はそれぞれ「Sphere1」、「Sphere2」としました。
☑Sphereを二つ作成
それではタグを作ります。何でも良いのでオブジェクトを選択した状態で、Inspectorの「Tag」欄から「Add Tag...」をクリックします。
☑「Add Tag...」を選択
続いて表示される画面の「+」を押して、タグの名前として「Obj001」と入力し、「Save」をクリックします。
「Tag」欄に「Obj001」が選べるようになりますので、「Sphere1」の「Tag」欄で「Obj001」を選択します。
これでタグ「Obj001」が適用されるので、同じように「Obj002」も作成して、「Sphere2」に適用します。
また、当たり判定には「OnTriggerEnter 」関数を使用しますので、それぞれのSphereの「Is Trigger」のチェックを入れておきます。
☑ 「Is Trigger」にチェック
コードは下のようになります。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjTag : MonoBehaviour { void OnTriggerEnter(Collider other) { if(other.CompareTag("Obj001")) { Debug.Log("Sphere1にあたった"); } if(other.CompareTag("Obj002")) { Debug.Log("Sphere2にあたった"); } } }
【参考】
では、このスクリプトを操作するキャラクターにアタッチし、ゲームを実行して動きを見てみましょう。
Sphere1にあたると「Sphere1にあたった」になって、Sphere2にあたると「Sphere2にあたった」 になってるね💨
ええ✨
このように、あたるオブジェクトによって、それぞれ別の処理を行うことができます。
これを応用すれば、いろんなバターンのイベントを作っていけそうですね✨
お名前