OnCollisionやOnTriggerを使用する際に、2つ以上のタグや名前を指定したい場合があります。
今回は、触れたオブジェクトを3つ用意して、それぞれの名前に該当すれば、削除する仕組みを作りましょう。
関連記事:
OnCollisionEnterとOnTriggerEnterの違い
他のスクリプトのBoolを取得する
コライダーのサイズを変えるスクリプト
isTriggerをスクリプトから切り替え
OnCollisionやOnTriggerで相手オブジェクトを複数指定
Cube、Capsule、Sphere、Cylinderを作成して配置します。
Cubeをプレーヤーとして動かしましょう。
Cubeにリジッドボディを追加します。
CubeMove.csを作成し、Cubeに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update() { float dx = Input.GetAxis("Horizontal") * 0.1f; float dz = Input.GetAxis("Vertical") * 0.1f; transform.position = new Vector3 ( transform.position.x + dx, 0, transform.position.z + dz ); } void OnCollisionEnter(Collision other) { if(other.gameObject.name == "Capsule" || other.gameObject.name == "Sphere" || other.gameObject.name == "Cylinder") { Destroy(other.gameObject); } } } |
ゲームプレイして、Cubeを動かしてみましょう。
|| はor条件(AまたはB)として使用し、いずれかがtrueの場合に実行します。
関連記事:
OnCollisionEnterとOnTriggerEnterの違い
他のスクリプトのBoolを取得する
コライダーのサイズを変えるスクリプト
isTriggerをスクリプトから切り替え