接触したオブジェクトのコライダーを削除(無効化)できるスクリプトを作ってみましょう。
BocColliderの当たり判定にぶつかると、相手のコライダーが消えます。
関連記事:
Collider内にとどまればn秒間動けなくなる
コライダーの無効化と有効化
他のコライダーとの距離を取得
OnCollisionEnterとOnTriggerEnterの違い
ボックスコライダーのサイズを変える
SphereColliderの大きさを変える
オブジェクトの半分まで入れば実行
Colliderを使った接触判定
エリア内にn秒間滞在すれば実行
Collider内にとどまればn秒間動けなくなる
複数のBoxColliderを取得する
プレーヤーがひっくり返らないようにする
触れたオブジェクトが2秒後に落下
ぶつかった相手のコライダーを消す
Plane、Cube、Sphereを作成し、それぞれに色をつけます。
Cube、Sphereにはリジッドボディを追加します。
Cubeにボックスコライダーを追加し、コライダーのサイズを2倍の大きさにしました。
それに合わせて、CubeをY:1に配置しています。
Sphereを少し離して配置します。
シーンビュー上では、このように見えています。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.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 25 26 27 28 29 30 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private float speed = 1.0f; private BoxCollider boxCol; void Update() { float moveX = Input.GetAxis("Horizontal") * Time.deltaTime * speed; float moveZ = Input.GetAxis("Vertical") * Time.deltaTime * speed; transform.position = new Vector3 ( transform.position.x + moveX, transform.position.y, transform.position.z + moveZ ); } void OnCollisionEnter(Collision other) { if (other.gameObject.name == "Cube") { boxCol = other.gameObject.GetComponent<BoxCollider>(); boxCol.enabled = false; } } } |
ゲームプレイして、十字キーでSphereを操作しましょう。
Cubeのコライダーに触れると、BoxColliderの範囲が消えて(無効になって)オブジェクトが落下します。
関連記事:
Collider内にとどまればn秒間動けなくなる
コライダーの無効化と有効化
他のコライダーとの距離を取得
OnCollisionEnterとOnTriggerEnterの違い
ボックスコライダーのサイズを変える
SphereColliderの大きさを変える
オブジェクトの半分まで入れば実行
Colliderを使った接触判定
エリア内にn秒間滞在すれば実行
Collider内にとどまればn秒間動けなくなる
複数のBoxColliderを取得する
プレーヤーがひっくり返らないようにする
触れたオブジェクトが2秒後に落下