Unity:GameObject配列全削除メモ

GameObjectは配列を new とかしても残ったままだから破壊とか SetActive(false) する必要がある。SetActive(false)のほうが軽いけどとりあえず全削除についてメモしておく。
関数の形

        private void DestroyObjects(GameObject[] objects)
        {
            foreach(GameObject obj in objects)
            {
                Destroy(obj);
            }
        }
//GameObject[,]でもいける

FindGameObjectsWithTagを使うとたぶんこんな感じ。

        private void DestroyObjects(string tag_name)
        {
            GameObject[] objects = GameObject.FindGameObjectsWithTag(tag_name);
            foreach(GameObject obj in objects)
            {
                Destroy(obj);
            }
        }

配列だからFindGameObjectsWithTag
にsがついてるのを忘れないようにする。

子オブジェクトを全て Destroy したい場合は

        private void DestroyObjects(Transform t)
        {
            foreach(t in Player.Instance.DamageTextField)
            {
                Destroy(obj.gameObject);
            }
        }

.gameObject をちゃんとつけないとエラーしたりクラッシュしたり。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA