指定した数だけPrefabが出現するように、プログラムを作ってみましょう。
Cubeが5個出現すれば、生成を止める仕組みです。
関連記事:
5秒経過すればInstantiateを止める
制限時間になれば停止する
制限時間になればPrefab生成を止める
Prefabデータの準備
まずは、Cubeオブジェクトを作成して、動かしましょう。
オブジェクトを用意してカラーをつけています。
CubeMove.csを作成して、Cubeに追加しましょう。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { [SerializeField] float speed = 5; void Update() { transform.position += new Vector3(Time.deltaTime * speed, 0, 0); if(transform.position.x >= 10) { Destroy(gameObject); } } } |
ゲームプレイしてみましょう。
Xが10に到達すると消える仕組みです。
続いて、CubeオブジェクトをPrefab化しましょう。
Cubeの元データは削除します。
Prefabが5個出現するまで繰り返す
Prefabデータは用意できたので、これをクローンとして生成できるようにプログラムを作成します。
まずは、空のオブジェクトを作成しましょう。
GameObjectの名前で空のオブジェクトができています。
GameManager.csを作成して、GameObjectに追加します。
GameManager.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 GameManager : MonoBehaviour { [SerializeField] GameObject cube; void Start() { StartCoroutine("CubeCount"); } IEnumerator CubeCount() { for (int count=0; count<5; count++) { yield return new WaitForSeconds(0.5f); Instantiate(cube,new Vector3(-5, 0, 0),Quaternion.identity); } } } |
コルーチンを使い、0.5秒おきに生成する仕組みをつけています。
プレイしてみましょう。
Instantiateのたびに生成数をカウント。
for文によって、指定した数だけPrefabを出現させています。
関連記事:
5秒経過すればInstantiateを止める
制限時間になれば停止する
制限時間になればPrefab生成を止める