Prefabが出現するたびに、ランダムで大きさを変化させてみましょう。
2秒おきにCubeのプレハブが生成され、それぞれの横幅(X)がランダムで変わっていきます。
関連記事:ランダムでPrefabの座標を変える
Prefabの動き
まずはPrefabデータをつくりましょう。
Cubeを作成します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.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 CubeMove : MonoBehaviour { void Update() { transform.position += new Vector3(Time.deltaTime * 5, 0, 0); if(transform.position.x >= 10f) { Destroy(gameObject); } } } |
Cubeをプロジェクトビューにドラッグ&ドロップして、Prefabデータにします。
Cubeの元データは削除しましょう。
Prefabのサイズをランダムで変化
続いて、空のオブジェクトを作成します。
CubeManager.csを作成し、GameManagerに追加します。
CubeManager.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeManager : MonoBehaviour { public GameObject gameObject; private float time; private float scaleX; void Update() { time -= Time.deltaTime; if(time <= 0.0f) { scaleX = Random.Range(1,5); GameObject cube = Instantiate(gameObject,new Vector3(-10, 0, 0),Quaternion.identity); cube.transform.localScale = new Vector3(scaleX, 1, 1); time = 2.0f; } } } |
ゲームオブジェクトのフィールドが出来ますので、ここにCubeのプレハブデータを入れます。
ゲームプレイしてみましょう。
プレハブが生成されるたびに、X座標の長さがランダムで変わっていきます。
関連記事:ランダムでPrefabの座標を変える