配列をつくり、種類の異なるPrefabを、順番に生成するしくみを作りましょう。
5種類のオブジェクトを用意し、これをクリックで順番に出現させてみます。
関連記事:
ボタンを押すたびに順番にオブジェクトを切り替える
1秒おきにPrefabを変える
発射するPrefabの種類を順番に変える
配列のオブジェクトをn秒おきにすべて出現
Resources.Loadを使ったファイル指定
指定した秒数になればオブジェクトの種類を変える
ボタンによってPrefabの種類を変える
発射するPrefabの種類を順番に変える
配列の個数分を順番に出現
ヒエラルキーから空のオブジェクト(GameObject)を作成します。
色違いでCubeのPrefabを5個つくりました。
ClickCube.csをつくり、GameObjectに追加。
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 ClickCube : MonoBehaviour { public GameObject[] cubeArray; private int count; //クリックをカウントする変数 private Vector3 mousePosition; void Start() { count = 0; //0からスタート } void Update() { //countが配列のサイズを下回っているときに実行 if(count < cubeArray.Length) { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; //配列のcount番目を生成 Instantiate(cubeArray[count], Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); count++; //クリックするたびに1ずつ増やす } } } } |
GameObjectのインスペクターを確認すると、CubeArrayに「サイズ」という項目が出ています。
ここに5を入力してEnterを押します。
すると、要素0~4までのフィールドが出来上がりました。
ここに、CubeのPrefabデータをドラッグ&ドロップしていきましょう。
プレイして動きを確認します。
要素0番に入れたプレハブから、順番に出現しています。
count変数でクリック数をかぞえて、要素番号を指定しながら、Instantiateで生成しています。
「配列変数.Length」を使えば、配列の数を取得することができるんですね。
これを使って、クリック数が5を上回れば、オブジェクト生成できないように制御しています。
関連記事:
ボタンを押すたびに順番にオブジェクトを切り替える
1秒おきにPrefabを変える
発射するPrefabの種類を順番に変える
配列のオブジェクトをn秒おきにすべて出現
Resources.Loadを使ったファイル指定
指定した秒数になればオブジェクトの種類を変える
ボタンによってPrefabの種類を変える
発射するPrefabの種類を順番に変える