Prefabの生成はゲーム制作には欠かせませんが、放っておくとどんどん貯まってしまいます。
当然、負荷もかかってしまうので、生成したPrefabを削除するしくみはぜひ作っておきましょう。
ボールが落下して、あるところまで落ちると消えます。
関連記事:
発射したPrefabを削除する
ボールの生成
まずは、クリックするとボールが生成されるようにしましょう。
Sphereオブジェクトを作成し、カラーをつけました。
リジッドボディをつけます。
Sphereをプレハブ化します。
Sphereの元データは消しておきましょう。
クリックでボールを生成できるようにします。
空のオブジェクトを作成します。
BallDrop.csを作成して、GameObject(空のオブジェクト)に追加しましょう。
BallDrop.csを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallDrop : MonoBehaviour { public GameObject ball; void Update() { if(Input.GetMouseButtonDown(0)) { Instantiate(ball, transform.position, Quaternion.identity); } } } |
GameObjectにBallフィールドが出来ているので、Sphereのプレハブを入れます。
ゲームプレイして、ボールの生成を確認しましょう。
クリックしてSphereが生成されるものの、プレハブがどんどん貯まっていきます。
落下地点でプレハブを削除する
Sphereが削除されるようにスクリプトを作成しましょう。
Sphereのプレハブデータを選びます。
コンポーネントを追加 > 新しいスクリプト > BallDelete.csを作成して追加。
BallDelete.csを書きましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallDelete : MonoBehaviour { void Update() { if(transform.position.y <= -10f) { Destroy(gameObject); } } } |
ゲームプレイしてみましょう。
Sphereが落下して、Yが-10に到達すると削除されます。
関連記事:
発射したPrefabを削除する