一回の操作で、リスト内のオブジェクトをすべて表示、非表示できるように、スクリプトを作成しましょう。
すべて消えた状態からスタートし、左クリックでリスト内のオブジェクトが一気に表示。
右クリックすると、またすべて非表示になります。
関連記事:
同じタグのオブジェクトをリストに追加
ぶつかったオブジェクトを順に配列に入れる
ぶつかったオブジェクトの名前をリストに追加する
リストの中が0になるまで生成する
子オブジェクトをすべて取得
アクティブ状態のオブジェクト数を取得
リスト内のPrefabを表示
リスト内の全要素をアクティブに
3つのオブジェクトを作成して、配置します。
空のオブジェクトを作成します。
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 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ListScript : MonoBehaviour { [SerializeField] List<GameObject> myList; void ListActive() { for (int i=0; i<myList.Count; i++) { myList[i].gameObject.SetActive(true); } } void ListHidden() { for (int i=0; i<myList.Count; i++) { myList[i].gameObject.SetActive(false); } } void Start() { ListHidden(); } void Update() { if (Input.GetMouseButtonDown(0)) { ListActive(); } if (Input.GetMouseButtonDown(1)) { ListHidden(); } } } |
MyListのサイズに3を入力し、3つのオブジェクトを入れます。
ゲームプレイしましょう。
スタート時はすべて非表示に。
左クリックすれば、リスト内の全てのオブジェクトが表示されます。
右クリックで、すべて非表示になります。
myList.Count でリストのサイズ(長さ)を取得し、forループを使って、リスト内の全要素をアクティブにしています。
関連記事:
同じタグのオブジェクトをリストに追加
ぶつかったオブジェクトを順に配列に入れる
ぶつかったオブジェクトの名前をリストに追加する
リストの中が0になるまで生成する
子オブジェクトをすべて取得
アクティブ状態のオブジェクト数を取得
リスト内のPrefabを表示