我想创建一个可以命令GameObject的所有子节点的类。所以我有一个GameObject,它包含大约50个孩子。现在我正在创建一个新对象,让他成为这个游戏对象的孩子。现在,在这个孩子中,我从主游戏对象中添加了3个孩子。下面是我写的代码,但有些不对劲。
private GameObject CloneObject;
private int index = 0;
[ExecuteInEditMode]
void Start()
{
for (int i = 0; i < transform.childCount; i++)
{
index++;
if (index == 3)
{
CloneObject = new GameObject("ob");
CloneObject.transform.parent = transform;
transform.GetChild(i).transform.parent = CloneObject.transform;
index = 0;
}
}
}
答案 0 :(得分:1)
这个循环的作用是创建(int)(transform.childCount / 3)GameObjects,每个GameObjects都有一个子节点。我想你需要的是:
CloneObject = new GameObject("ob");
for (int i = 0; i < transform.childCount; i++)
{
index++;
CloneObject.transform.parent = transform;
transform.GetChild(i).transform.parent = CloneObject.transform;
if (index == 3)
{
CloneObject = new GameObject("ob");
index = 0;
}
}
将前3个子对象添加到当前GameObject,然后创建一个新对象。