種類の違うPrefabを、1秒おきにランダムで表示、非表示させてみましょう。
4つのオブジェクトがランダムで出現し、1秒経てば消えてという動きをくり返します。
関連記事:
1秒後にPrefabを削除する
1秒おきにPrefabを変える
出現時間をランダム(秒)にする
1秒おきにランダムで回転角を変える
制限時間になればPrefabを全削除
ランダム表示したPrefabを順に配列に入れる
種類の異なるPrefabを用意
Cube、Sphere、Capsule、Cylinderの4つのオブジェクトを作成します。
DeleteTime.csを作成し、4つのオブジェクトに追加します。
DeleteTime.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class DeleteTime : MonoBehaviour { public float lifeTime; void Start() { Destroy(gameObject, lifeTime); } } |
lifeTimeというフィールドが出来ますので、4つのオブジェクトすべて「1」を入力します。
これで、オブジェクトが出現してから、1秒後に消えるようになります。
4つのオブジェクトをすべてプロジェクトビューに入れて、Prefab化しましょう。
4つのオブジェクトの元データを削除します。
ランダムで出ては消えるスクリプト
空のオブジェクトを作成します。
RandomObject.csを作成し、GameObject(空のオブジェクト)に追加しましょう。
RandomObject.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class RandomObject : MonoBehaviour { public GameObject[] objectPrefab; private int i; private float time; void Start() { time = 0.0f; } void Update() { time -=Time.deltaTime; if(time <= 0.0f) { time = 2.0f; i = Random.Range (0, objectPrefab.Length); Instantiate(objectPrefab[i],new Vector3(0, 0, 0),Quaternion.identity); } } } |
サイズというフィールドに「4」を入力します。
0~3の要素というフィールドが出来るので、ここに4つのPrefabをそれぞれ入れます。
ゲームプレイしてみましょう。
今回のスクリプトでは、2つの時間の設定があります。
Prefabが消えるまで1秒、Prefabを生成する間隔は2秒にしています。
消える時間は、生成する間隔よりも短い時間に設定します。
スロットゲームなどでも使えそうな仕組みですね。
関連記事:
1秒後にPrefabを削除する
1秒おきにPrefabを変える
出現時間をランダム(秒)にする
1秒おきにランダムで回転角を変える
制限時間になればPrefabを全削除
ランダム表示したPrefabを順に配列に入れる