假设我想要一个名为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栏上手动拖动childPrefabs
到parentPrefab
,否则我尝试了很多方法但失败了。
答案 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;
}
}
这是上述代码的结果,我怀疑,这是你想要的?