Unity 5.6 - C# - 使用AddComponent将游戏对象添加到另一个GameObject <t>

时间:2017-04-28 20:35:50

标签: c# unity3d htc-vive

我正在处理的函数实例化一个GameObject(使用预制)。我将 GameObject 存储在本地变量

GameObject tmpObject;

完美无瑕地工作。接下来,我尝试将此GameObject分配给我的Vive控制器的GameObject表示,如下所示:

tmpObject = tmpController.gameObject.AddComponent<GameObject>() as GameObject;

我得到的错误是UnityEngine.GameObject无法转换为UnityEngine.Component。

我错过了简单/基本吗?我尝试按照Unity的official guidline添加一个SphereCollider,它确实有效,为什么我不能添加GameObject?是否有将GameObjects添加到另一个GameObject的解决方法?任何帮助都非常赞赏

1 个答案:

答案 0 :(得分:6)

您无法将GameObject添加到GameObject。从一开始就没有意义。你只能附加组件。我认为你想让GameObject成为另一个GameObject的孩子......你可以使用SetParent函数。请参阅下面的示例,了解如何创建GameObject以及您可以执行的操作:

创建一个名为&#34; BallObject&#34;

的新GameObject
GameObject a = new GameObject("BallObject");

创建一个名为&#34; BrickObject&#34;

的新GameObject
GameObject b = new GameObject("BrickObject");

Make&#34; BrickObject&#34; &#34; BallObject&#34;的对象父对象对象

a.transform.SetParent(b.transform);

制作&#34; BallObject&#34;对象本身。 &#34; BrickObject&#34;对象不再是它的父母了

a.transform.parent = null;

将脚本/组件添加到&#34; BrickObject&#34;对象

b.AddComponent<Rigidbody>();