一つのオブジェクトに、同じ種類のコライダーが2つ以上ある場合、これをそれぞれ取得してみましょう。
今回の例では、CubeにBoxColliderが2つあり、左右クリックで切り替えてみます。
BoxColliderとして同じ名前がついていて紛らわしいですが、それぞれ別々に取得することはできます。
関連記事:
コライダーの無効化と有効化
コライダーのサイズを変えるスクリプト
触れた相手のコライダーを削除(無効にする)
他のコライダーとの距離を取得
isTriggerをスクリプトから切り替え
同種のコライダーを取得する
Cubeを作成します。
デフォルトで追加されているBoxColliderを横にずらします。
シーンビューではこのように見えています。
BoxColliderを、もう一つ追加しましょう。
こちらは逆方向にずらします。
シーンビューではこのように見えています。
ColliderChange.csを作成し、Cubeに追加します。
ColliderChange.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ColliderChange : MonoBehaviour { [SerializeField] BoxCollider boxCol_1; [SerializeField] BoxCollider boxCol_2; void Update() { if (Input.GetMouseButtonDown(0)) { boxCol_1.enabled = true; boxCol_2.enabled = false; } if (Input.GetMouseButtonDown(1)) { boxCol_1.enabled = false; boxCol_2.enabled = true; } } } |
2つのBoxColのフィールドに、それぞれBoxColliderコンポーネントを入れます。
ゲームプレイして、左右のマウスをクリックしてみましょう。
2つのボックスコライダーが取得され、クリックで切り替わっています。
関連記事:
コライダーの無効化と有効化
コライダーのサイズを変えるスクリプト
触れた相手のコライダーを削除(無効にする)
他のコライダーとの距離を取得
isTriggerをスクリプトから切り替え