如何在一个循环中同时获得两个GameObjects子级?

时间:2019-03-24 07:56:25

标签: c# unity3d

for (int i = 0; i < doors.Count; i++)
        {
            if (doorLockState == true)
            {
             var t =    doors[i].GetComponentInChildren<Transform>();
                // Color in red
            }
            else
            {
                var t = doors[i].GetComponentInChildren<Transform>();
                // Color in green
            }
        }

我在两种情况下都使用变量t只是为了进行调试测试。

doors [i]每个循环有两个门。 door [0]包含两个项目,每个项目都有一个孩子。 我想得到他们每个人的孩子。现在的方式是,我只把东西放在门上,而不是每个门上的孩子。

1 个答案:

答案 0 :(得分:2)

由于每个项目仅包含一个孩子,因此您可以使用Transform.GetChild(0)获取第一个也是唯一的孩子。其余的很简单,遍历门[i]中的每个物品并让他们的孩子走。

foreach(Transform child in dooors[i].GetComponentsInChildren<Transform>())
{
    Transform childOfChild = child.GetChild(0);
}