Unity:代码中的预制育儿

Unity: Prefab parenting in code

假设我想要多个名为 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,那么10childPrefabs也应该旋转。我尝试了很多方法但都失败了,除非我手动将 childPrefabs 拖到 Hierachy 栏上的 parentPrefab

您确定要在每帧上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;
    }
}

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