【问题标题】:How to create assetbundle at run time?如何在运行时创建资产包?
【发布时间】:2018-05-18 07:51:12
【问题描述】:

是否有将 3D 模型转换为资产包的工具? 要么 是否可以在运行时转换它们?

我可以使用 Loading 3d object from external server in Unity3D 转换它们。但我的应用程序允许最终用户上传他们自己的 3D 模型,并通过在运行时下载在应用程序中查看它们。

p.s : 我对统一很陌生。

【问题讨论】:

  • asset bundles 需要先在 unity 内部构建,它们可以是除新脚本之外的任何类型的资产。
  • 那么,有没有办法在运行时导入新的 3D 模型?
  • 可能有办法做到这一点,但你应该实现和使用自己的系统,而不是资产包。
  • 你能告诉我一些快速入门指南吗?我是 Unity 新手,无法在 google 上找到正确的单词。
  • 嗨,试试github.com/KhronosGroup/UnityGLTF转换器,你可以在服务器端使用node.js或其他东西将FBX转换为GLTF,或者只使用gltf模型

标签: c# unity3d vuforia


【解决方案1】:

是否有将 3D 模型转换为资产包的工具?或者是 可以在运行时转换它们吗?

简短的回答是否定的。您不能在运行时使用,因为用于创建 Assetbundle 的每个 Unity API 仅在 Editor for Editor 插件上可用。

但我的应用程序允许最终用户上传他们自己的 3D 模型和 通过在运行时下载在应用程序中查看它们。

如果您想要做的是允许人们将 fbx 模型导入并查看到 Unity,那么您不需要 Assetbundle 来执行此操作。

你有两个提示:

1。如果您还想支持 40 多种其他 3D 文件格式,请使用 TriLib(非免费)插件。

2。如果您买不起付费的工作插件,请自己制作。这需要您使用 C++ 中的 Autodesk FBX SDK 构建一个插件,并使用 C# 与之通信。由于您是初学者,我建议您使用#1。

【讨论】:

  • 我尝试了测试插件。对于某些 3D 模型,它似乎无法正确导入所有纹理。
  • 不要担心纹理。您可以从脚本轻松地做到这一点。唯一需要关心的是加载插件可以执行的网格。对于纹理,只需实例化加载的网格,使用着色器将材质附加到它,然后自己加载纹理并将其分配给对象。
  • 如果有 100 个具有不同纹理的子对象怎么办?
  • 您希望最终用户上传自己的 3D 模型吗?他们为您提供每个模型和纹理,然后您使用插件加载模型并将纹理应用到它......这里没什么复杂的。
  • 我不需要指定要应用于每个子对象的纹理吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-12
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2020-09-12
  • 1970-01-01
相关资源
最近更新 更多