キューバに行ってみたい

ゲーム開発とかWeb開発とか

[Unity] script で子オブジェクトを全て削除する

Version unity 2020.3.27.f1 で動作検証を行っています。

特定のオブジェクトの子オブジェクトを全て削除したいことがあるかと思います。

例として、ボタンをクリックすると Canvas の子オブジェクトのテキストを全て削除する実装を紹介します。

実装方法

このように DeleteCanvas の子オブジェクトに複数 Text を配置します。

そしてこれらの Text を削除する script を以下のように用意して、button にアタッチします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DeleteAllText : MonoBehaviour
{
    [SerializeField] private Canvas canvas;
    public void Delete()
    {
        foreach (Transform g in this.canvas.gameObject.transform)
        {
            Destroy(g.gameObject);
        }
    }
}

やっていることは子要素分 foreach でループさせて削除しているだけになります。

今回は以上になります。