Unity 5.6 - C# - 使用 AddComponent<T> 将一个游戏对象添加到另一个游戏对象
Unity 5.6 - C# - Adding a GameObject to another GameObject with AddComponent<T>
我目前正在处理的函数实例化了一个游戏对象(使用预制件)。我将这个 GameObject 存储在局部变量
中
GameObject tmpObject;
完美运行。接下来,我尝试将此游戏对象分配给我的 Vive 控制器的游戏对象表示,如下所示:
tmpObject = tmpController.gameObject.AddComponent<GameObject>() as GameObject;
我得到的错误是 UnityEngine.GameObject 无法转换为 UnityEngine.Component。
我是不是漏掉了一个简单的/基本的?我尝试按照 Unity 的 official guidline 添加一个 SphereCollider,它确实有效,那么为什么我不能添加 GameObject?是否有将游戏对象添加到另一个游戏对象的解决方法?非常感谢任何帮助!
您不能将 GameObject 添加到 GameObject。这甚至没有意义开始 with.You 只能附加组件。我认为您想使一个 GameObject 成为另一个 GameObject 的子对象...为此您可以使用 SetParent
函数。请参阅下面的示例,了解如何创建游戏对象以及您可以做什么:
创建一个名为 "BallObject"
的新游戏对象
GameObject a = new GameObject("BallObject");
创建一个名为 "BrickObject"
的新游戏对象
GameObject b = new GameObject("BrickObject");
使 "BrickObject" 对象成为 "BallObject" 对象的父对象
a.transform.SetParent(b.transform);
使 "BallObject" 对象独立存在。 "BrickObject" 对象不再是父对象
a.transform.parent = null;
将 script/component 添加到您的 "BrickObject" 对象
b.AddComponent<Rigidbody>();
我目前正在处理的函数实例化了一个游戏对象(使用预制件)。我将这个 GameObject 存储在局部变量
中GameObject tmpObject;
完美运行。接下来,我尝试将此游戏对象分配给我的 Vive 控制器的游戏对象表示,如下所示:
tmpObject = tmpController.gameObject.AddComponent<GameObject>() as GameObject;
我得到的错误是 UnityEngine.GameObject 无法转换为 UnityEngine.Component。
我是不是漏掉了一个简单的/基本的?我尝试按照 Unity 的 official guidline 添加一个 SphereCollider,它确实有效,那么为什么我不能添加 GameObject?是否有将游戏对象添加到另一个游戏对象的解决方法?非常感谢任何帮助!
您不能将 GameObject 添加到 GameObject。这甚至没有意义开始 with.You 只能附加组件。我认为您想使一个 GameObject 成为另一个 GameObject 的子对象...为此您可以使用 SetParent
函数。请参阅下面的示例,了解如何创建游戏对象以及您可以做什么:
创建一个名为 "BallObject"
的新游戏对象GameObject a = new GameObject("BallObject");
创建一个名为 "BrickObject"
的新游戏对象GameObject b = new GameObject("BrickObject");
使 "BrickObject" 对象成为 "BallObject" 对象的父对象
a.transform.SetParent(b.transform);
使 "BallObject" 对象独立存在。 "BrickObject" 对象不再是父对象
a.transform.parent = null;
将 script/component 添加到您的 "BrickObject" 对象
b.AddComponent<Rigidbody>();