タイムアップになれば、ゲーム上に出ているPrefabデータを、すべて削除する仕組みをつくりましょう。
1秒おきにボールが出現しますが、5秒経過すれば、表示されているすべてのボールが消えます。
関連記事:
1秒おきにPrefabをランダム表示・非表示
1秒後にPrefabを削除する
発射したPrefabを削除する
1秒おきにボールを出現するスクリプト
空のオブジェクトを作成します。
DropBall.csを作成し、GameObjectに追加します。
DropBall.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 38 39 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class DropBall : MonoBehaviour { public GameObject ball; private float time; private int vecX; public bool isTimeUp; private float CountTimer; void Start() { time = 1; CountTimer = 5; isTimeUp = false; } void Update() { if (0 < CountTimer) { time -= Time.deltaTime; CountTimer -= Time.deltaTime; if(time <= 0.0f) { vecX = Random.Range(-5,5); Instantiate(ball,new Vector3(vecX, 8, 0),Quaternion.identity); time = 1.0f; } } else if (CountTimer < 0) { isTimeUp =true; } } } |
時間になれば画面上のプレハブを消す
Sphereを作成し、リジッドボディを追加。
抵抗を3に変えて、落下スピードを遅くします。
BallDelete.csを作成し、Sphereに追加します。
BallDelete.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallDelete : MonoBehaviour { public GameObject dropPoint; void Start() { dropPoint = GameObject.Find("GameObject"); } void Update() { if(dropPoint.GetComponent<DropBall>().isTimeUp == true) { Destroy(this.gameObject); } } } |
Sphereをプロジェクトビューにドラッグ&ドロップし、プレハブ化します。
sphereの元データは削除しておきます。
GameObjectを選択し、Ballのフィールドに、Sphereのプレハブを入れます。
ゲームプレイしてみましょう。
横方向をランダムにして、ボールを生成。
5秒経過すれば、画面上のプレハブが全て削除されます。
関連記事:
1秒おきにPrefabをランダム表示・非表示
1秒後にPrefabを削除する
発射したPrefabを削除する