如何在运行时控制实例化的预制件作为孩子

Posted

技术标签:

【中文标题】如何在运行时控制实例化的预制件作为孩子【英文标题】:How to control instantiated prefabs at runtime as children 【发布时间】:2015-10-21 11:42:50 【问题描述】:

我在 Unity 中有一个游戏,每隔几秒我就会实例化 GameObjects。然后在层次结构中,预制件显示在被实例化的列表中,例如:

EnemyBlue(Clone)
EnemyRed(Clone)
EnemyGreen(Clone)
EnemyBlue(Clone)

这阻塞了我的层次结构。我的问题是,是否可以将 GameObjects 实例化为空 GameObject 的子对象,例如:

Enemies // An Empty GameObject
    EnemyBlue(Clone)
    EnemyRed(Clone)
    EnemyGreen(Clone)
    EnemyBlue(Clone)

【问题讨论】:

【参考方案1】:

您可以设置像 ILiveForVR 提到的变换的父级,但您也可以为已经存在的东西设置父级:

gameObject.transform.parent = GameObject.Find("Name of game object").transform;

【讨论】:

【参考方案2】:

实例化后可以设置对象的父对象:http://docs.unity3d.com/ScriptReference/Transform.SetParent.html

比如:EnemyBlue.tranform.SetParent(Enemies.transform);

【讨论】:

您是否必须在检查器中设置父级?或者你可以做一个 .Find 来找到父母吗?

以上是关于如何在运行时控制实例化的预制件作为孩子的主要内容,如果未能解决你的问题,请参考以下文章

实例化的预制比例在客户端上未正确显示

Unity UI 缩放和实例化预制件

当我第二次实例化预制件时,为啥会出现错误?

发生碰撞时如何实例化预制件c#

在未实例化的视图控制器上设置徽章值的正确方法?

Unity Photon:实例化非预制对象?