我们目前面临的一个问题是,我们正在努力开发一个灵活的UI,其中的"MainCanvas“由运行时预制板组成。
我们已经可以将运行时预编程序集实例化为场景中存在的GameObject的父级。但是我们希望父程序也是一个实例化的预制件。
这是肯定的,使这在某种程度上起作用,或有任何其他的选择,我们应该研究。
感谢所有阅读这篇文章的人!
我们已经尝试实现给定的示例,但是它总是在控制台中返回一个错误。
可悲的是,我们已经在程序中做了一点改变,所以我们不能真正地重新创建错误消息,但是如果有人被破坏了,我们可以恢复并截图。
感谢再次阅读这篇文章的人,我们希望找到一个解决办法:)
发布于 2022-11-30 07:53:06
Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent)方法实例化父实例下面的sceond预置实例
这是我的测试代码,工作正常:
public class PrefabParentTest : MonoBehaviour
{
[SerializeField] private GameObject _prefab1;
[SerializeField] private GameObject _prefab2;
void Start()
{
var instance1 = Instantiate(_prefab1, Vector3.zero, Quaternion.identity);
var instance2 = Instantiate(_prefab2, Vector3.zero, Quaternion.identity, instance1.transform);
}
}

或者,您可以使用Transform.SetParent (不推荐作为第一个)来实现相同的目标:
void Start()
{
var instance1 = Instantiate(_prefab1, Vector3.zero, Quaternion.identity);
var instance2 = Instantiate(_prefab2, Vector3.zero, Quaternion.identity);
instance2.transform.SetParent(instance1.transform);
}参考文献:
https://stackoverflow.com/questions/74624301
复制相似问题