为RT3D项目选择正确的运行时资产加载技术

实时3D(RT3D)项目变得越来越复杂,需要更智能的方法来管理资产和运行时加载。开发者不断推动可能性的边界,随着这些项目在复杂性和规模上不断增长,确保流畅的性能和卓越的用户体验变得比以往任何时候都更加重要。虽然Unity Asset Manager提供了一个全面的解决方案来组织、管理和优化您的资产,但开发者仍然面临选择合适技术将资产加载到运行时的挑战。
无论您是从内容分发网络(CDN)流式传输内容、动态加载本地资产,还是通过加载/卸载周期管理内存,选择合适的资产加载技术对您项目的成功至关重要。
Unity提供多种运行时资产加载的方法,每种方法都针对特定需求和项目目标量身定制。本电子书旨在指导开发者了解可用选项,比较它们的优缺点,并帮助您为项目选择理想的解决方案。
理解运行时资产加载
运行时资产加载是指您的应用程序在运行时如何加载和卸载内容。这可能意味着:
- 从CDN下载新内容
- 按需加载本地资产
- 通过卸载未使用的内容来管理内存
- 逐步流式传输多边形
让我们探索不同的资产加载技术以及一些最适合每种技术的RT3D行业项目示例。
理解您的选项
Unity提供多种方法来处理这些场景,每种方法都针对不同的用例进行了优化。
- AssetBundles/Addressables
- 专为Unity项目构建
- 处理所有Unity资产类型
- 通常最适合Unity应用程序
- 在高效内存管理是优先事项的地方,
- 在DLC包将通过空中交付的地方,
- 以及用于需要定期内容更新(季节性活动、新角色、产品更新)的实时服务游戏和应用程序
- glTF
- 平台无关的解决方案,无需Unity进程进行干预
- 专注于纯3D内容
- 通常最适合所有需要灵活加载本地3D数据并要求跨平台兼容性的运行时应用程序
- 3DDS(Unity 3D数据流)
- 平台无关的解决方案,能够可视化3D模型,如CAD和BIM数据
- 在Unity资产管理器中一键生成和可视化
- 仅加载相关内容,并以最佳质量呈现
- 通常最适合大型可视化,用户可以在任何设备上探索非常复杂和详细的模型,采用渐进式加载。
乍一看,这些工具似乎可以互换。然而,每个工具在独特场景中表现出色,使其更适合特定的用例。选择正确的技术取决于将工具的优势与项目需求相匹配。
做出正确的选择
选择正确技术的关键在于理解项目的具体要求。让我们探讨应该影响您决策的因素。

使用AssetBundles,您可以构建一个接近空场景的应用程序,并从那里动态加载游戏或应用程序的其余部分。
资源包和可寻址资源
可寻址资源包是一个Unity原生系统,旨在:
- 简化运行时的资源加载。
- 启用依赖关系跟踪、内容版本控制、多个加载路径(本地/远程)、网络传输和缓存。
资源包是处理实际资源打包和加载的底层技术;可寻址资源是建立在资源包之上的高层系统,提供更用户友好的界面、自动化的依赖管理和简化的运行时加载。资源包在管理复杂游戏内容方面表现出色。它还针对特定的构建目标、Unity版本和平台进行了优化。当你需要时,它们是理想的选择:
- 支持多种资源类型,因为它们可以处理任何类型的资源,包括纹理、声音、场景、预制件等。
- 依赖管理,因为Unity会解析资源之间的依赖关系。
- 版本控制
- 使用可寻址资源,你可以获得一个跟踪资源版本及其依赖关系的目录,因此当你更新内容时,系统可以准确识别需要重新下载的包。
- 这对于希望推送内容更新(例如季节包或实时活动)的在线游戏特别有帮助,而不需要强迫玩家重新下载整个游戏。
- 针对Unity优化的特定平台
理想的使用案例:
一款需要高效内存管理和加载时间的Unity游戏,具有多种资源类型,和/或定期内容更新。优化后的资源不需要在不同的运行时之间共享。
为什么它有效:你可以通过资源的“地址”或通过AssetReference按需加载内容,而可寻址资源系统会自动为你处理其余部分,无论该内容是已经缓存到设备上还是仍然托管在你的CDN上。运行时可以下载新的内容包,而无需进行完整的应用更新。最终用户在保持性能和高效管理内存的同时,获得新的季节性内容。

Unity glTFast (com.unity.cloud.gltfast) 包支持在运行时和编辑器中导入和导出 glTF™ 3D 文件。
glTF 加载
glTF 和 .GLB 本质上是相同格式的不同打包方式 - glTF 是一种基于文本的格式,具有单独的文件(纹理、二进制数据等),这使得它在开发和调试中非常出色,而 GLB 将所有内容打包成一个单一的二进制文件,使其在分发和运行时加载时更高效。
glTF 提供了一种使用 Unity 免费的 glTFast 包进行 3D 模型加载的简化解决方案。当您需要时,请考虑此选项:
- 简单的 3D 模型加载
- 使用 GLB 时,依赖项必须在导出时打包到文件中或手动解决。
- 跨平台兼容性
- 快速实现
- 标准格式支持,不依赖于 Unity 版本或平台。
理想的使用案例:
一个简单的模型查看器应用程序,其中快速加载和标准格式支持是优先事项。如果您需要在不同的 RT3D 项目中重用资产,而不必重新编译它们,GLB 是最佳选择。一个具体的例子是电子商务应用程序,其中一个查看器可以查看成千上万的资产。
另一个例子是用户可以自定义的内容项目,例如自定义头像或自定义配件,并且需要一种可以灵活创作的标准格式。
为什么它有效:GLB 是网络的 3D 格式。GLB 数据在许多接触点可用。

使用 Unity 3D 数据流动态下载模型的相关部分,并使其在任何设备上可视,无论模型大小。
3DDS (Unity 3D 数据流)
Unity 3D 数据流是一项多边形流服务,允许开发者将 3D 静态资产和环境直接流式传输到用户的设备。数据在 Unity 资产管理器中使用 Pixyz 技术 预处理,以自动优化其分发到运行时应用程序。运行时的加载也由 Unity 的 gltFast 技术处理。
在您的客户端中,3D 数据流包通过实现开箱即用的优化,使模型能够加载,从而进一步减少模型在离相机较远时的内存占用,同时确保近距离的完整细节。
3DDS 在处理大规模模型和复杂可视化时表现出色,同时保留模型的所有部分元数据。这是首选选择:
- 大型 CAD 和 BIM 模型
- 即时首个像素
- 渐进式加载要求
- 单一资产来源 / 多个目标平台
- 针对每个目标设备的内存优化加载
- 复杂模型层次结构的导航和研究
理想的使用案例:
您从未能够在运行时应用程序中展示的模型的 VR 漫游体验。
一个建筑或工程可视化和审查应用程序,访问处理详细 CAD 或 BIM 模型的元数据或属性,这些模型由于设备的有限内存和渲染能力而无法完全加载。
做出您的决定
如果您正在使用 Unity 开发游戏,Addressables 通常是推荐的解决方案。原因如下:
- 专为 Unity 的开发工作流程而构建
- 针对运行时性能进行了优化
- 与Unity的内存管理集成
- 支持复杂的资产依赖关系
- 高效处理多种资产类型
异常情况:用户生成内容 如果您的游戏涉及用户生成的内容(如自定义头像或物品),请考虑使用GLB:
- 标准格式使内容创建更为便捷
- 在Unity版本之间提供更好的长期兼容性
- 更容易的第三方集成(例如,ReadyPlayerMe头像)
异常情况:一个基于实体组件系统(ECS)的Unity游戏。如果您正在利用Unity的ECS架构,您应该使用实体内容管理系统进行运行时资产管理。
对于行业项目,选择更多地取决于具体要求。
选择GLB的情况:
- 处理标准3D模型时
- 需要跨平台兼容性时
- 处理用户上传的内容时
- 需要平台独立更新时
- 需要长期格式稳定性时
选择3DDS的情况:
- 处理大型CAD/BIM模型时
- 渐进式加载是必要的
- 需要内存优化
- 保护复杂的层次结构和元数据是优先事项
- 需要动态保真度缩放

开始使用资产管理器
Unity资产管理器帮助您在运行时之前组织和准备资产,为您选择的任何加载策略创建高效的管道。与Unity编辑器和Unity的数据准备解决方案Pixyz集成,资产管理器可以:
- 集中管理从创建、迭代到最终状态的源资产
- 转换和准备资产以进行运行时部署
- 在Unity编辑器工作流程中高效组织资产
- 在不同的资产格式之间转换
- 充当可以在运行时使用的实时3D文件的存储库
随着项目的增长,资产管理器与您的Unity编辑器许可证一起扩展,以提供额外的存储和管理能力。
无论您是在为资产包准备资产、生成glTF文件,还是设置3DDS流,Unity资产管理器都可以帮助您在开发过程中保持组织和控制。
Unity资产管理器可以将数据直接带入运行时应用程序。一旦生成gLTF和3DDS数据,可以立即在运行时进行查看,而无需构建时间。这缩短了工业客户将其CAD和BIM数据直接带入Unity应用程序的旅程。

发现更多
如果您想了解更多关于 Unity Asset Manager 解决方案的信息,请查看这些资源:
- 通过名称安装:com.unity.cloud.gltfast,从 Unity Package Manager 下载 glTFast 包
- Addressables 文档
- 3D 数据流文档
Q&A
分享您在 Unity 中加载素材的经验和问题。加入我们,参与 Unity 讨论。
获取电子书
填写此表格以获取来自行业专家的前沿见解和解决方案


