倒れたタイミングで、オブジェクトが消えるように、スクリプトを作成してみましょう。
シリンダーが傾き、倒れて床にふれた瞬間に、オブジェクトを削除します。
関連記事:
乗ったオブジェクトをn秒後に消す
同じタグのついたオブジェクトだけを消す
Prefabを取って削除する
指定の座標まで落下すればPrefabを削除
触れたオブジェクト(複数)をn秒後に全削除
親オブジェクトと子オブジェクトの取得
倒れる方向をランダムにする
当たり判定を上部に置く
PlaneとCylinderを作成。
Cylinderを地上に出し、リジッドボディを追加します。
Cylinderを右クリックし、空のオブジェクトを作成。
Cylinderの子オブジェクトとして、GameObjectが追加されます。
GameObjectにSphereCollider(スフィアコライダー)を追加し、高さと半径を変更します。
トリガーにするにチェックを入れます。
シーンビューでは、コライダーはこのように見えています。
ObjDestroy.csを作成し、GameObjectに追加します。
ObjDestroy.csを記述します。
親オブジェクトは、transform.parent.gameObject; と書いて取得することができます。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjDestroy : MonoBehaviour { private GameObject parentObj; void Start() { parentObj = transform.parent.gameObject; } void Update() { if (Input.GetMouseButtonDown(0)) { parentObj.transform.Rotate(0,0,1); } } void OnTriggerEnter(Collider other) { if (other.gameObject.name == "Plane" ) { Destroy(parentObj); } } } |
ゲームプレイしましょう。
クリックするとCylinderを傾けるようにしています。
倒れるとCylinderオブジェクトが壊れて消えます。
関連記事:
乗ったオブジェクトをn秒後に消す
同じタグのついたオブジェクトだけを消す
Prefabを取って削除する
指定の座標まで落下すればPrefabを削除
触れたオブジェクト(複数)をn秒後に全削除
親オブジェクトと子オブジェクトの取得
倒れる方向をランダムにする