c# - 如何从 Unity 游戏对象列表中禁用子对象

标签 c# list unity-game-engine

我有一个游戏对象列表,我试图根据情况启用和禁用子对象。问题是当我尝试使用 SetActiveactive 时,我收到 UnityEngine.Transform does not contains aDefinition for active 和 SetActive 错误

public List<Transform> components;

for(int i = 0; i <= components.Count ; i++)
{   
    if(index == i)
    {
        components[i].Find("amount").SetActive(false);
        components[i].Find("confirm").active = true;
    }
}

最佳答案

SetActive用于游戏对象,而不是变换。 只需访问变换的游戏对象即可:

components[i].Find("amount").gameobject.SetActive(false);

关于c# - 如何从 Unity 游戏对象列表中禁用子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827326/

相关文章:

unity-game-engine - 使两个物理对象不发生碰撞,但在 Unity 中检测碰撞

c# - Unity3d - C# - 如何备份数组的值?

c# - 嵌套列表框滚动问题

list - Haskell - 使用 Take 和 Drop 将列表分成三部分

c - while循环不起作用?

jQuery:选择列表中的最后 4 项

unity-game-engine - Unity3d Linerenderer 不可见

c# - 如何防止函数中的隐式转换?

c# - 取消backgroundworker操作

c# - 在 asp.net c# 中从 excel 转换为数据表时日期格式发生变化