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

标签 c# unity3d htc-vive

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

GameObject tmpObject;

完美运行。接下来,我尝试将此游戏对象分配给我的 Vive Controller 的游戏对象表示,如下所示:

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

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

我是否缺少一个简单的/基本的?我尝试根据 Unity 的 official guidline 添加一个 SphereCollider它确实有效,那么为什么我不能添加 GameObject?是否有将游戏对象添加到另一个游戏对象的解决方法?非常感谢任何帮助!

最佳答案

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

创建一个名为“BallObject”的新游戏对象

GameObject a = new GameObject("BallObject");

创建一个名为“BrickObject”的新游戏对象

GameObject b = new GameObject("BrickObject");

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

a.transform.SetParent(b.transform);

使“BallObject”对象独立存在。 “BrickObject”对象不再是它的父对象

a.transform.parent = null;

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

b.AddComponent<Rigidbody>();

关于c# - Unity 5.6 - C# - 使用 AddComponent<T> 将一个游戏对象添加到另一个游戏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43688511/

相关文章:

c# - 仅跟踪 HTC Controller 而不跟踪耳机本身

c# - XDocument.Save 到特定目录?

c# - 如何使用 MS EWS Managed API 检索全局联系人?

c# - SignalR .Net 客户端在设备上失败并出现 500 服务器错误,在模拟器上工作正常

c# - for 循环中的预递减值在第一个循环中未正确递减值

c# - Windows API 代码包 - ShellFile 不生成 PDF 位图

c# - Unity 2D OnTriggerEnter 不工作,什么都试过了

c# - 旋转时固体物体的持续角

c# - VR 播放器 Controller 未显示给角色 Controller