リストの中のオブジェクトがすべて無くなれば、テキストが出現するように、スクリプトを作成しましょう。
リスト内に入れた3つのオブジェクトを全部出すと、「Empty」の文字が出るようにします。
関連記事:
リストの中で最後に追加された要素から削除
リストを古い要素(先頭)から削除
ぶつかったオブジェクトをリストに追加する
配列をすべてリストに移す
触れたオブジェクト(複数)をn秒後に全削除
リストの中が0になるまで生成する
リストのサイズ(長さ)を取得
リスト内のPrefabを表示
リスト内のオブジェクトが無くなれば文字を出す
Sphere、Cube、Cupluleのオブジェクトをそれぞれ、プレハブ化します。
元データは削除しましょう。
TextMeshProを作成し、中央に配置。
カラーを黒に設定して、テキストに内容は消しておきます。
空のオブジェクトを作成します。
ListScript.csを作成し、GameObject(空のオブジェクト)に追加します。
ListScript.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class ListScript : MonoBehaviour { [SerializeField] List<GameObject> myList; private Vector3 mousePosition; [SerializeField] TextMeshProUGUI textObject; void Update() { if(myList.Count>0) { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; Instantiate(myList[0], Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); myList.RemoveAt(0); } } else { textObject.text = "Empty"; } } } |
Mylistのフィールドに3と入力。
要素0~2のフィールドが作成されるので、ここに3つのプレハブを入れます。
TextObjectのフィールドに、Textを入れましょう。
ゲームプレイして、動きを確認します。
クリックオブジェクトを出すたびに、リストから削除されます。
リストの中身が0になれば、文字が出現します。
関連記事:
リストの中で最後に追加された要素から削除
リストを古い要素(先頭)から削除
ぶつかったオブジェクトをリストに追加する
配列をすべてリストに移す
触れたオブジェクト(複数)をn秒後に全削除
リストの中が0になるまで生成する
リストのサイズ(長さ)を取得
リスト内のPrefabを表示