我正在处理的函数实例化一个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的解决方法?任何帮助都非常赞赏!
答案 0 :(得分:6)
您无法将GameObject添加到GameObject。从一开始就没有意义。你只能附加组件。我认为你想让GameObject成为另一个GameObject的孩子......你可以使用SetParent
函数。请参阅下面的示例,了解如何创建GameObject以及您可以执行的操作:
创建一个名为&#34; BallObject&#34;
的新GameObjectGameObject a = new GameObject("BallObject");
创建一个名为&#34; BrickObject&#34;
的新GameObjectGameObject 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>();