Unity:在代码中预制父母

时间:2015-06-20 10:42:37

标签: unity3d gameobject

假设我想要一个名为childTile的多个预制对象,它将另一个名为parentTile的预制对象作为父对象。因此,只要parentTile旋转,childTiles将围绕parentTile旋转。

基本上这就是我写的:

public GameObject childPrefab;
public GameObject parentPrefab;

void Update()
{
   for(int i = 0; i < 10; i++)
   {
      GameObject clone = Instantiate(childPrefab, /*PsuedoCode: random position*/ , Quaternion.identity)

      clone.transform.parent = parentPrefab;

   }
}

预期的结果是在运行时,如果我在场景中旋转parentPrefab,那么10 childPrefabs也应该旋转。除非我在Hierachy栏上手动拖动childPrefabsparentPrefab,否则我尝试了很多方法但失败了。

1 个答案:

答案 0 :(得分:2)

您确定要在每个帧上Instantiate个10个子预制件(每帧调用Update一次)。

我认为你的问题是,你没有Instantiate父预制件。

如果我接受你的代码并修复它,它对我来说就像一个魅力。

public GameObject childPrefab;
public GameObject parentPrefab;

void Start() 
{
    GameObject parent = Instantiate(parentPrefab) as GameObject;

    for(int i = 0; i < 10; i++)
    {
        GameObject child = Instantiate(childPrefab) as GameObject;
        child.transform.parent = parent.transform;
    }
}

这是上述代码的结果,我怀疑,这是你想要的?

enter image description here