UnityとC#を使い、構造体をリストにして
要素のGameObjectがnullになった時に、リストから削除したいです。
例えばですが、リストの2番目のenemys.enemyがnullになった時に、
リストから2番目を削除したいです。
初期状態 | 列1 | 列2 | 列3 |
---|---|---|---|
enemy | A | B | C |
hp | 1 | 2 | 3 |
これを | 列1 | 列2 | 列3 |
---|---|---|---|
enemy | A | null | C |
hp | 1 | 2 | 3 |
これにしたい | 列1 | 列3 |
---|---|---|
enemy | A | C |
hp | 1 | 3 |
以下のような構造体にしました
public struct Enemeys{ public GameObject enemy; // 敵オブジェクト public int hp; // 敵HP public Vector3 position; // 敵の生成位置 public Vector3 rotation; // 敵の生成角度 } public List<Enemeys> enemys = new List<Enemeys> ();
ただのリストだと以下のようにすればリストからnullを削除できるのですが、
enemys.RemoveAll (n => n.enemy == null);
構造体のリストが3の場合で、以下を行うと
void Update () { enemys.RemoveAll (n => n.enemy == null); Debug.Log (enemys.Count); }
本来は、
GameObjectが他の処理で消えて
3
2
1
となって欲しいところが、
3
3
3
3
のようになりずっと変わりません。
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー