7

我目前正在处理的函数实例化了一个游戏对象(使用预制件)。我将此游戏对象存储局部变量中

GameObject tmpObject;

完美运行。接下来,我尝试将此 GameObject 分配给 Vive 控制器的 GameObject 表示,如下所示:

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

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

我在那里缺少一个简单的/基本的吗?我尝试按照 Unity 的官方指南添加一个 SphereCollider ,它确实有效,那么为什么我不能添加 GameObject?是否有将 GameObjects 添加到另一个 GameObject 的解决方法?非常感谢任何帮助!

4

1 回答 1

15

您不能将 GameObject 添加到 GameObject。这甚至没有意义。你只能附加组件。我认为你想让一个游戏对象成为另一个游戏对象的孩子......你可以使用这个SetParent函数。有关如何创建 GameObject 以及您可以做什么的示例,请参见下文:

创建一个名为“BallObject”的新 GameOBject

GameObject a = new GameObject("BallObject");

创建一个名为“BrickObject”的新 GameOBject

GameObject b = new GameObject("BrickObject");

使“BrickObject”对象成为“BallObject”对象的父对象

a.transform.SetParent(b.transform);

使“BallObject”对象成为自己的对象。“BrickObject”对象不再是父对象

a.transform.parent = null;

将脚本/组件添加到“BrickObject”对象

b.AddComponent<Rigidbody>();
于 2017-04-28T20:43:32.483 回答