如何在统一C#脚本中从面板破坏动态元素

时间:2019-05-19 18:36:04

标签: c# unity3d

尝试从面板中删除项目(为空),然后用新项目(按钮)重新填充面板

我已经尝试删除每个元素,但没有运气,您在下面看到的foreach

<ul>
    {% for product in object_list %}
        <li>{{ product }}</li>
        <ul>
        {% for order in product.order_set %}
            <li>{{ order }}</li>
        {% endfor %}
        </ul>
    {% endfor %}
</ul>

3 个答案:

答案 0 :(得分:1)

面板的变换层次结构包含对它们的引用。

Transform panelTransform = GameObject.Find("station_panel").transform;
foreach(Transform child in panelTransform) {
    Destroy(child.gameObject);
}

答案 1 :(得分:0)

创建列表并添加为面板创建的任何按钮。

一旦要清除它,请清除此列表,但是GetCompoenents不会返回Panel游戏对象中的所有按钮,因为您不能将2个按钮组件添加到单个游戏对象中。

还将-using UnityEngine.UI-添加到脚本顶部,以方便阅读,就像

 foreach (Button b in list)
{
    Destroy(b.gameObject);        
}

答案 2 :(得分:0)

立即销毁(i-am-gameobject);