リストに入っているオブジェクトを取り出して、0になるまで置けるように、スクリプトを作成しましょう。
リスト内に格納されたプレハブを、スペースキーで若い番号から生成。
一度使ったプレハブは、リストから削除されます。
関連記事:
クリックしたオブジェクト名をリストへ追加
リストの中で最後に追加された要素から削除
リストを古い要素(先頭)から削除
リストの中で指定した要素を削除
ぶつかったオブジェクトの名前をリストに追加する
リストの中のオブジェクトを表示する
FindObjectsOfTypeで指定したクラスを全て取得
配列をすべてリストに移す
配列にあるオブジェクトを要素番号で呼び出す
リストのサイズ(長さ)を取得
リスト内のオブジェクトが無くなれば生成できない
3つのオブジェクトを用意し、それぞれプレハブ化します。
プレハブの元データは削除しておきます。
プレーヤーとしてCubeを作成します。
ListObject.csを作成し、Cubeに追加します。
ListObject.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 ListObject : MonoBehaviour { [SerializeField] List<GameObject> myList = new List<GameObject>(); void Update() { if( myList.Count>0) { if (Input.GetKeyDown (KeyCode.Space)) { Instantiate(myList[0],transform.position,Quaternion.identity); myList.RemoveAt(0); } } float moveX = Input.GetAxis("Horizontal") * Time.deltaTime * 3.0f; float moveY = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f; transform.position = new Vector3( transform.position.x + moveX, transform.position.y + moveY, 0); } } |
サイズに3を入力すれば、要素のフィールドが3つ出来ます。
要素0~2に、プレハブを入れましょう。
ゲームプレイしましょう。
Cubeを十字キー操作、スペースキーで要素0にあるプレハブを生成します。
出したプレハブはリストから消し込まれ、すべて無くなればそれ以上、生成することはできません。
関連記事:
クリックしたオブジェクト名をリストへ追加
リストの中で最後に追加された要素から削除
リストを古い要素(先頭)から削除
リストの中で指定した要素を削除
ぶつかったオブジェクトの名前をリストに追加する
リストの中のオブジェクトを表示する
FindObjectsOfTypeで指定したクラスを全て取得
配列をすべてリストに移す
配列にあるオブジェクトを要素番号で呼び出す
リストのサイズ(長さ)を取得