如何在Unity C#代码中的GameObject.CreatePrimitive中添加.fbx(人类3D对象)?

如何在Unity C#代码中的GameObject.CreatePrimitive中添加.fbx(人类3D对象)?,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,之前,我询问并获得了在运行时添加和销毁3D对象的正确解决方案 使用GameObject.CreatePrimitive(PrimitiveType.Capsule)我只能添加有限的3D对象,如立方体、胶囊和其他 现在的问题是,我想添加3D人体.fxb对象。我可以在下面的代码中添加.fbx对象吗 Queue<GameObject> Capsules; void Start() { Capsules = new Queue<GameObject>(); } publ

之前,我询问并获得了在运行时添加和销毁3D对象的正确解决方案

使用GameObject.CreatePrimitive(PrimitiveType.Capsule)我只能添加有限的3D对象,如立方体、胶囊和其他

现在的问题是,我想添加3D人体.fxb对象。我可以在下面的代码中添加.fbx对象吗

Queue<GameObject> Capsules;
void Start()
{
    Capsules = new Queue<GameObject>();
}

public GameObject caps;
private void createObject()
{
    caps = GameObject.CreatePrimitive(PrimitiveType.Capsule);
    Capsules.Enqueue(caps);
}
队列胶囊;
void Start()
{
胶囊=新队列();
}
公共游戏对象上限;
私有void createObject()
{
caps=GameObject.CreatePrimitive(PrimitiveType.Capsule);
胶囊。排队(caps);
}

长话短说:你不能

GameObject.CreatePrimitive
只创建基本体,如立方体、圆柱体等。如果您想在运行时实例化预制体,我建议您查看

您可以这样做:

GameObject yourGameObject=whatever;
private void createObject()
{
    caps = Instantiate(yourGameObject);
    Capsules.Enqueue(caps);
}
您可以使用。在编辑器中创建预置之后 您可以使用以下代码在脚本中使用它:

using UnityEditor;

// Loading the prefab this way only works in the editor.
GameObject myPrefab = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Prefabs/Character.prefab");

// Use this otherwise:
// using UnityEngine;
// GameObject myPrefab = Resources.Load<GameObject>("Prefabs/Character");
// Note: The Prefabs folder has to be placed in a folder named Resources.

您应该阅读有关本例的内容。@Streamline,谢谢您的指导。@Streamline,如何将预置作为游戏对象添加到队列中我不理解,请您描述更多。它使用上述代码,除了caps是CreatePrimitive()的返回值之外,相反,它是您刚刚使用实例化方法创建的新人类游戏对象。然后,将CAP添加到队列胶囊中,就像上面的代码一样。错误显示无法将类型
UnityEngine.GameObject'隐式转换为
System.Collections.Generic.Queue如何在队列中将预置添加为**GameObject**尝试生成一个公共变量并将其命名为myModel。在Unity UI中,转到您将脚本放在其上的任何游戏对象。然后将您的模型拖放到标有“我的模型”的插槽中(或者,如果您以不同的名称命名它,则可以使用其他名称)。然后实例化myModel。
GameObject character = Object.Instantiate(myPrefab);
// Set location, rotation, ...
Capsules.Enqueue(character);