リストに追加したオブジェクトを、新しいもの(最後に追加された要素)から削除する仕組みをつくりましょう。
クリックして、リストの中にいくつかのオブジェクトが入れ、スペースキーを押せば、直近の要素から先に消えていきます。
関連記事:
リストを古い要素(先頭)から削除
リストの中で指定した要素を削除
ぶつかったオブジェクトをリストに追加する
配列をすべてリストに移す
触れたオブジェクト(複数)をn秒後に全削除
リストの中が0になるまで生成する
リストのサイズ(長さ)を取得
リスト内のPrefabを表示
リストのオブジェクトを直近の要素から消す
オブジェクトをいくつか作成します。
間隔をあけてオブジェクトを配置します。
空のオブジェクトを作成します。
ListControl.csを作成し、GameObjectに追加します。
ListControl.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ListControl : MonoBehaviour { public List<GameObject> myList = new List<GameObject>(); private int count; void Start() { count = 0; } void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { myList.Add(hit.collider.gameObject); count++; } } if (Input.GetKeyDown (KeyCode.Space)) { count--; myList.RemoveAt(count); } } } |
ゲームプレイしましょう。
オブジェクトをクリックすると、順番にリストの中に追加。
スペースキーを押せば、一番最後に追加した新しい要素から、順番に削除されます。
関連記事:
リストを古い要素(先頭)から削除
リストの中で指定した要素を削除
ぶつかったオブジェクトをリストに追加する
配列をすべてリストに移す
触れたオブジェクト(複数)をn秒後に全削除
リストの中が0になるまで生成する
リストのサイズ(長さ)を取得
リスト内のPrefabを表示