Object 在Unity3D中的对象中添加游戏对象
这个问题可能看起来有点奇怪,但我想使用脚本将对象“胶囊”添加到我的游戏对象中(见下图) 这是我在对象中添加组件的代码:Object 在Unity3D中的对象中添加游戏对象,object,unity3d,Object,Unity3d,这个问题可能看起来有点奇怪,但我想使用脚本将对象“胶囊”添加到我的游戏对象中(见下图) 这是我在对象中添加组件的代码: object1 = (GameObject)Resources.Load (name) as GameObject; myObject = Instantiate (object1); myObject.transform.SetParent (parent.transform); myObject.transform.posi
object1 = (GameObject)Resources.Load (name) as GameObject;
myObject = Instantiate (object1);
myObject.transform.SetParent (parent.transform);
myObject.transform.position = new Vector3 (0, 0, 0);
myObject.transform.localScale = new Vector3 (70f, 70f, 70f);
myObject.AddComponent<BoxCollider> ();
myObject.AddComponent<CapsuleCollider> ();
myObject.AddComponent<MeshRenderer> ();
myObject.gameObject.SetActive (true);
object1=(GameObject)Resources.Load(name)作为GameObject;
myObject=实例化(object1);
myObject.transform.SetParent(parent.transform);
myObject.transform.position=新向量3(0,0,0);
myObject.transform.localScale=新向量3(70f,70f,70f);
myObject.AddComponent();
myObject.AddComponent();
myObject.AddComponent();
myObject.gameObject.SetActive(true);
可能的解决方案是什么?多谢各位 似乎对“添加
游戏对象
”的含义存在误解,让我们来分析一下。在Unity中,GameObject
是一个Transform
和一组“组件”。该Transform
可以是另一个Transform
的“父”或“子”<代码>游戏对象及其“变换继承权”显示在“继承权”统一窗口中。单个游戏对象
及其“组件”(实现单一行为的东西
)显示在“Inspector”Unity窗口中
根据这些术语,您不能“将游戏对象
添加到另一个游戏对象
”,但是您可以通过将一个转换
作为另一个游戏对象的子对象来“将游戏对象
添加到另一个中”
似乎您在这里尝试的是将您的“胶囊”添加为每个游戏对象的子对象。在这种情况下,您只需为每个游戏对象
,实例化一个新的“胶囊”实例(可以将其设置为预置),并将其设置为游戏对象
的父对象:
public class CapsuleAdder : MonoBehaviour {
private const string capsulePrefabName = "whatever"; // Prefab name goes here
void Awake() {
GameObject newCapsule = Instantiate(Resources.Load(capsulePrefabName) as GameObject) as GameObject;
newCapsule.transform.SetParent(transform); // Sets parent to this
}
}
只要你正确地设置了capsulePrefabName
,任何带有此脚本的GameObject
都会在你小时候生成一个你的胶囊预置副本。似乎对“添加GameObject
”的意思有误解,让我们来分析一下。在Unity中,GameObject
是一个Transform
和一组“组件”。该Transform
可以是另一个Transform
的“父”或“子”<代码>游戏对象
及其“变换继承权”显示在“继承权”统一窗口中。单个游戏对象
及其“组件”(实现单一行为的东西
)显示在“Inspector”Unity窗口中
根据这些术语,您不能“将游戏对象
添加到另一个游戏对象
”,但是您可以通过将一个转换
作为另一个游戏对象的子对象来“将游戏对象
添加到另一个中”
似乎您在这里尝试的是将您的“胶囊”添加为每个游戏对象的子对象。在这种情况下,您只需为每个游戏对象
,实例化一个新的“胶囊”实例(可以将其设置为预置),并将其设置为游戏对象
的父对象:
public class CapsuleAdder : MonoBehaviour {
private const string capsulePrefabName = "whatever"; // Prefab name goes here
void Awake() {
GameObject newCapsule = Instantiate(Resources.Load(capsulePrefabName) as GameObject) as GameObject;
newCapsule.transform.SetParent(transform); // Sets parent to this
}
}
只要你正确地设置了capsulePrefabName
,任何带有此脚本的GameObject
都会在你小时候生成你的胶囊预制的副本。这里有什么问题?我希望myObject将“胶囊”添加为一个组件。可能吗?不可能将其添加为组件。你是说作为一个孩子吗?嗯,是的,作为一个孩子。对不起,您的代码中有什么不起作用?你有什么错误吗?SetParent
有效吗?我们需要更多关于您的问题的信息。您的问题是什么?我希望myObject添加“胶囊”作为组件。可能吗?不可能将其添加为组件。你是说作为一个孩子吗?嗯,是的,作为一个孩子。对不起,您的代码中有什么不起作用?你有什么错误吗?SetParent
有效吗?我们需要关于您的问题的更多信息。是否应将我的胶囊添加到资源文件夹中?@Sarah Yes<代码>资源。加载
仅适用于“资源”文件夹中的资产。@Sarah我还忘记了第一次调用实例化
。编辑了答案。是否应将我的胶囊添加到资源文件夹中?@Sarah Yes<代码>资源。加载
仅适用于“资源”文件夹中的资产。@Sarah我还忘记了第一次调用实例化
。编辑了答案。