1秒おきに横の位置を変えながら、ボールを落下させるしくみをつくりましょう。
プレハブデータ出現の位置について、X座標をランダムにしています。
関連記事:
ランダムでPrefabの座標を変える
Prefabの座標をランダムにして生成
出現時間をランダム(秒)にする
移動してからn秒ストップをくり返す
向かってくるオブジェクトをクリックで破壊
配列のオブジェクトをn秒おきにすべて出現
落下スピードをランダムにする
指定の座標まで落下すればPrefabを削除
3秒おきに出現と消滅をくり返す
生成するX座標をランダムに
Sphereを作成し、リジッドボディを追加します。
Sphereをブロジェクトビューにドラッグ&ドロップし、プレハブデータに変えます。
Sphereの元データを削除しておきます。
空のオブジェクトを作成します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class DropBall : MonoBehaviour { public GameObject ball; private float count = 1.0f; private int vecX; void Update() { count -= Time.deltaTime; if(count <= 0) { vecX = Random.Range(-9, 10); Instantiate(ball,new Vector3(vecX, 8, 0),Quaternion.identity); count = 1.0f; } } } |
Ballのフィールドに、Sphereのプレハブデータを入れます。
ゲームプレイしてみましょう。
横方向が、-9から9の範囲でランダムにして、ボールが落下します。
一つ注意したいのが、Random.Rangeをint型で使う場合、最大値は含まれません。
今回の例では、Random.Range(-9, 10)としているので、最大値10は含まれず、-9から9の範囲ということになります。
関連記事:
ランダムでPrefabの座標を変える
Prefabの座標をランダムにして生成
出現時間をランダム(秒)にする
移動してからn秒ストップをくり返す
向かってくるオブジェクトをクリックで破壊
配列のオブジェクトをn秒おきにすべて出現
落下スピードをランダムにする
指定の座標まで落下すればPrefabを削除
3秒おきに出現と消滅をくり返す