触れている状態のオブジェクトを、何秒後かに削除できるしくみを作ってみましょう。
Cubeの上に乗った状態から、1秒後に下のCubeが破壊されます。
関連記事:
触れたオブジェクト(複数)をn秒後に全削除
触れた相手をn秒後に削除する
Invokeを使ってn秒後に関数を実行する
1秒後にPrefabを削除する
倒れると削除
触れたオブジェクトが2秒後に落下
ぶつかっていればn秒後に削除
PlaneとCube2個を作成し、Cubeにはそれぞれリジッドボディを追加します。
Cube2のほうを上に配置します。
CubeDelete.csを作成し、Cube2に追加します。
CubeDelete.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 31 32 33 34 35 36 37 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeDelete : MonoBehaviour { private float time; private bool isTouch; private GameObject destroyObj; void Start() { time = 1; isTouch = false; } void OnCollisionEnter(Collision other) { if(other.gameObject.name == "Cube") { destroyObj = other.gameObject; isTouch = true; } } void Update() { if(isTouch) { time -= Time.deltaTime; if(time <= 0) { Destroy(destroyObj); } } } } |
ゲームプレイしてみましょう。
下のCubeに乗った状態で、1秒経過すれば、破壊されます。
関連記事:
触れたオブジェクト(複数)をn秒後に全削除
触れた相手をn秒後に削除する
Invokeを使ってn秒後に関数を実行する
1秒後にPrefabを削除する
倒れると削除
触れたオブジェクトが2秒後に落下