ランダムで出現させたPrefabを、表示順でArrayの中に入る仕組みをつくりましょう。
3つのPrefabをランダムで1秒おきに表示します。
表示された順番で、Prefabデータが配列の中に格納されていきます。
関連記事:
重複せずランダムでオブジェクトを並べる
重複無しでリストからランダム抽出(シャッフル)
ぶつかったオブジェクトを順に配列に入れる
1秒おきにPrefabをランダム表示・非表示
配列にあるオブジェクトを要素番号で呼び出す
クリックしたオブジェクトを順番に配列に入れる
入力テキストを順番に配列に入れる
複数のオブジェクト名を配列に入れてテキスト表示
FindObjectsOfTypeで指定したクラスを全て取得
ゴールした順位をテキスト表示
ランダム出現のループをスペースキーで停止・実行
指定した要素番号にオブジェクトを入れる
スクリプトから配列に格納する
複数地点から順番にPrefabを生成
出現順でArrayに格納
Cube、Sphere、Capsuleを作成します。
DeleteTime.csを作成し、作成した3つのオブジェクトそれぞれに追加します。
DeleteTime.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class DeleteTime : MonoBehaviour { private float lifeTime; void Start() { lifeTime = 1.0f; Destroy(gameObject, lifeTime); } } |
このスクリプトで、スタートしてから、1秒後に消えるようになります。
3つのオブジェクトをすべてプロジェクトビューに入れて、Prefab化しましょう。
元データはすべて削除しておきます。
空のオブジェクトを作成します。
ObjectSet.csを作成し、GameObject(空のオブジェクト)に追加しましょう。
ObjectSet.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 26 27 28 29 30 31 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjectSet : MonoBehaviour { public GameObject[] cloneArray; public GameObject[] setArray = new GameObject[3]; private int randomNum; private float time; private int count; void Start() { time = 0.0f; count = 0; } void Update() { time -=Time.deltaTime; if(time <= 0.0f && count < 3) { time = 2.0f; randomNum = Random.Range (0, cloneArray.Length); Instantiate(cloneArray[randomNum],new Vector3(0, 0, 0),Quaternion.identity); setArray[count]= cloneArray[randomNum]; count++; } } } |
ランダム生成するために、配列の中にオブジェクトを入れましょう。
CloneArrayのサイズに3を入力し、要素0~2の中に、それぞれのPrefabデータを入れます。
ゲームプレイしてみましょう。
1秒おきにランダムでPrefabが表示されます。
今回は、Capsule → Cube → Sphere の順に表示。
表示されたPrefabが、順にsetArrayの中へ格納されていきます。
関連記事:
重複せずランダムでオブジェクトを並べる
重複無しでリストからランダム抽出(シャッフル)
ぶつかったオブジェクトを順に配列に入れる
1秒おきにPrefabをランダム表示・非表示
配列にあるオブジェクトを要素番号で呼び出す
クリックしたオブジェクトを順番に配列に入れる
入力テキストを順番に配列に入れる
複数のオブジェクト名を配列に入れてテキスト表示
FindObjectsOfTypeで指定したクラスを全て取得
ゴールした順位をテキスト表示
ランダム出現のループをスペースキーで停止・実行
指定した要素番号にオブジェクトを入れる
スクリプトから配列に格納する
複数地点から順番にPrefabを生成