以前我问过问题,并得到了在运行时添加和销毁3D对象的适当解决方案。
通过使用GameObject.CreatePrimitive(PrimitiveType.Capsule);,我只能添加有限的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);
}发布于 2018-12-31 11:55:12
您可以通过使用预制板来做到这一点。在编辑器中创建了预置文件之后,可以使用以下代码在脚本中使用它:
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.加载预制件之后,您可以使用Instantiate复制。
GameObject character = Object.Instantiate(myPrefab);
// Set location, rotation, ...
Capsules.Enqueue(character);发布于 2018-12-31 06:34:06
长话短说:你不能!
GameObject.CreatePrimitive只创建原语,如多维数据集、圆柱等。如果您想在运行时实例化您的预置文件,我建议您去看看Instantiate。
你可以这样做:
GameObject yourGameObject=whatever;
private void createObject()
{
caps = Instantiate(yourGameObject);
Capsules.Enqueue(caps);
}https://stackoverflow.com/questions/53984168
复制相似问题