首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在统一的.fbx代码中在GameObject.CreatePrimitive中添加人类3D对象?

如何在统一的.fbx代码中在GameObject.CreatePrimitive中添加人类3D对象?
EN

Stack Overflow用户
提问于 2018-12-31 06:11:41
回答 2查看 687关注 0票数 1

以前我问过问题,并得到了在运行时添加和销毁3D对象的适当解决方案。

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

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

代码语言:javascript
复制
Queue<GameObject> Capsules;
void Start()
{
    Capsules = new Queue<GameObject>();
}

public GameObject caps;
private void createObject()
{
    caps = GameObject.CreatePrimitive(PrimitiveType.Capsule);
    Capsules.Enqueue(caps);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-31 11:55:12

您可以通过使用预制板来做到这一点。在编辑器中创建了预置文件之后,可以使用以下代码在脚本中使用它:

代码语言:javascript
复制
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复制。

代码语言:javascript
复制
GameObject character = Object.Instantiate(myPrefab);
// Set location, rotation, ...
Capsules.Enqueue(character);
票数 1
EN

Stack Overflow用户

发布于 2018-12-31 06:34:06

长话短说:你不能!

GameObject.CreatePrimitive只创建原语,如多维数据集、圆柱等。如果您想在运行时实例化您的预置文件,我建议您去看看Instantiate

你可以这样做:

代码语言:javascript
复制
GameObject yourGameObject=whatever;
private void createObject()
{
    caps = Instantiate(yourGameObject);
    Capsules.Enqueue(caps);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53984168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档