プレハブ化したオブジェクトを続けて生成する場合、その位置をランダムで変えていきます。
1秒おきにキューブが出現。
Y座標がランダムで変化し、左から右へが移動していく動きをつくります。
関連記事:
エリア内でランダム移動する
ランダムでPrefabのサイズを変える
1秒おきにランダムでボールを落とす
Cubeの動きをつくる
Cubeを作成します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 >= 8) { Destroy(gameObject); } } } |
Cubeが動きだし、X座標が8になれば消えるようになります。
Cubeをプロジェクトビューにドラッグ&ドロップして、Prefabデータに変換します。
Cubeの元データは削除しましょう。
PrefabのY座標をランダムで生成
続いて、空のオブジェクトを作成します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeManager : MonoBehaviour { public GameObject gameObject; private float time; private int vecY; void Update() { time -= Time.deltaTime; if(time <= 0.0f) { vecY = Random.Range(0,5); Instantiate(gameObject,new Vector3(-8, vecY, 0),Quaternion.identity); time = 1.0f; } } } |
ゲームオブジェクトにフィールドに、Cubeプレハブを入れます。
ゲームプレイしてみましょう。
Y座標が0~5のランダムで、1秒おきにCubeが出現します。