Choosing the right runtime asset loading technology for RT3D projects

Apr 25, 2025
Factory floor model in Unity Asset Manager using 3D data streaming

为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

实时3D (RT3D) 项目变得越来越复杂,需要更智能的资产管理和运行时加载方法。开发人员不断突破可能的界限,随着这些项目的复杂性和规模不断增长,确保流畅的性能和卓越的用户体验变得比以往任何时候都更加重要。虽然Unity Asset Manager为组织、管理和优化资源提供了全面的解决方案,但开发人员仍然面临着选择合适的技术将资源加载到运行时中的挑战。

无论您是从内容分发网络 (CDN) 流式传输内容、动态加载本地资源,还是通过加载/卸载周期管理内存,选择合适的资源加载技术对于项目的成功都至关重要。

Unity提供了多种运行时资源加载方法,每种方法都针对指定的需求和项目目标量身定制。这本电子书旨在指导开发人员了解可用的选项,比较它们的优势,并帮助您为您的项目选择理想的解决方案。

了解运行时Asset加载中

运行时资源加载是指应用程序在running时如何加载和卸载内容。这可能意味着:

  • 从CDN下载新内容
  • 按需加载中本地资产
  • 通过卸载未使用的内容来管理内存
  • 逐步串流多边形

让我们来探讨不同的资产加载技术,并举例说明哪些 RT3D 行业项目最适合采用每种技术。

了解您的选择

Unity提供了多种处理这些情况的方法,每种方法都针对不同的使用场景进行了优化。

  1. AssetBundles/Addressables
    1. 专为Unity项目而构建
    2. 处理所有Unity资源类型
    3. 通常最适合Unity应用程序
      1. 在高效内存管理至关重要的情况下,
      2. DLC扩展包将通过无线方式推送,
      3. 以及对于定期更新内容(季节性活动、新角色、产品更新)的在线服务型游戏和应用程序而言
  2. glTF
    1. 无需Unity流程干预的平台无关解决方案
    2. 专注于纯3D内容
    3. 通常最适合所有需要灵活加载原生3D数据并需要跨平台兼容性的运行时应用程序
  3. 3DDS(Unity 3D数据串流)
    1. 平台无关的解决方案,可实现3D模型(例如 CAD 和 BIM 数据)的可视化。
    2. Unity Asset Manager中的一键生成和可视化
      1. 仅加载最高质量的相关内容
    3. 通常最适合缩放可视化,用户可以在任何设备上通过渐进加载来探索非常复杂和详细的模型。

乍一看,这些工具似乎可以互换使用。然而,每款产品都有其独特的优势,因此更适合指定的使用场景。选择合适的技术,关键在于将工具的优势与项目的需求相匹配。

做出正确的选择

选择合适技术的关键在于了解项目的指定的需求。让我们来探讨一下影响您决策的因素。

使用AssetBundles,您可以编译版本一个包含一个几乎为空的场景的应用程序,然后从中动态加载游戏的其余部分。

使用AssetBundles,您可以编译版本一个几乎为空的场景的应用程序,然后从中动态加载游戏或应用程序的其余部分。

AssetBundles和Addressables

Addressables包是一个 Unity 原生系统,旨在:

  • 简化运行时时资源加载。
  • 启用依赖关系跟踪、内容版本控制、多加载路径(本地/远程)、网络交付和缓存。

AssetBundles是关卡技术,负责处理实际的资源打包和加载; Addressables是构建在AssetBundles之上的高级系统,提供更友好的用户界面、自动化的依赖关系管理和简化的运行时加载。AssetBundles擅长管理复杂的游戏内容。它还针对指定的编译版本目标、 Unity版本和平台进行了优化。当你需要以下情况时,它们是理想之选:

  • 支持多个资产类型,可与任何类型的资产配合使用,包括纹理、声音、场景、预制件等等。
  • Unity会进行依赖管理,解决资源之间的依赖关系。
  • 版本控制
    • 使用Addressables,您可以获得一个跟踪资产版本及其依赖项的目录,因此当您更新内容时,系统可以准确地识别哪些捆绑包需要重新下载。
    • 这对于想要推送内容更新(例如赛季包或实时活动)而又不想强迫玩家重新下载整个游戏的在线游戏来说尤其有用。
  • Unity 优化,平台专属

理想使用场景:

一款需要高效内存管理和加载时间、包含多种资源类型和/或需要定期更新内容的Unity游戏。优化后的资源无需在不同的运行时环境之间共享。

其原理:您可以按需通过资源的“地址”或通过 AssetReference 加载内容, Addressables系统会自动为您处理其余部分,无论该内容是否已缓存在设备上或仍然托管在您的CDN上。运行时可以下载新的内容包,而无需进行完整的应用程序更新。End用户可以在保持性能和有效管理内存的同时,获得新的季节性内容。

Unity glTFast (云端 ) 包支持在运行时和编辑器内导入和导出 glTF™ 3D文件。

Unity glTFast (云端 ) 包支持在运行时和编辑器内导入和导出 glTF™ 3D文件。

glTF loading

glTF 和 .GLB 本质上是相同的格式,只是打包方式不同——glTF 是一种基于文本的格式,包含单独的文件(纹理、二进制数据等),这使得它非常适合开发和调试,而 GLB 将所有内容捆绑到一个二进制文件中,使其更便于分发和运行时加载。

glTF 提供了一个简化的解决方案,使用 Unity 的免费 glTFast 包来加载3D模型。当您需要以下情况时,请考虑此选项:

  • Simple的3D模型加载
    • 使用 GLB 时,依赖项必须在导出时写入文件或手动解析。
  • 跨平台兼容性
  • 快速实施
  • 支持不依赖于Unity版本或平台的标准格式。

理想使用场景:

一款简洁的模型查看器应用程序,优先考虑快速加载和标准格式支持。如果您需要在不同的 RT3D 项目中重复使用资源,而无需重新编译它们,那么 GLB 是最佳选择。一个具体的例子是电子商务应用程序,其中一个用户可以通过该程序查看数千件商品。

另一个例子是,某些项目的内容可以由用户自定义,例如自定义头像或自定义配饰,并且需要一种可以灵活创作的标准格式。

其原理:GLB是网络的3D格式。GLB 数据可通过多种渠道获取。

 使用 3DDS 流式传输Unity Asset Manager中的工厂车间模型

使用Unity 3D数据流动态下载模型的相关部分,并make可在任何设备上查看,而无需考虑模型大小。

3DDS(Unity 3D数据流)

Unity 3D数据串流是一种多边形流服务,允许开发人员将3D静态资源和环境直接流式传输到用户设备。使用Pixyz技术在Unity Asset Manager中对数据进行预处理,以自动优化其向运行时应用程序的分发。运行时时加载也由 Unity 的 gltFast 技术处理。

在您的客户端中, 3D数据串流软件包通过实施开箱即用的优化,使模型能够加载,从而减少远离摄像机的模型的内存占用,同时确保近距离观察时的完整细节。

3DDS 在处理大规模模型和复杂可视化方面表现出色,同时还能保留模型的所有部件元数据。它是以下情况的首选:

  • 大型CAD和BIM模型
  • 即时首像素
  • 渐进装载要求
  • 单一资产来源/多目标平台
  • 每个目标设备的内存优化加载
  • 复杂模型层级导航与研究

理想使用场景:

让您以VR现实的方式体验您从未在运行时应用程序中展示过的模型。

一款建筑或工程可视化和审查应用程序,可以访问与详细 CAD 或 BIM 模型相关的元数据或属性,但由于设备内存和渲染能力有限,无法完整加载这些模型。

做出决策

如果你使用Unity开发游戏, Addressables通常是推荐的解决方案。原因如下:

  • 专为 Unity 的开发工作流程而构建
  • 针对运行时性能进行了优化
  • 与 Unity 的内存管理集成
  • 支持复杂的资产依赖关系
  • 能够高效处理多种资产类型

例外情况:用户生成内容如果您的游戏包含用户生成内容(例如自定义头像或物品),请考虑使用 GLB:

  • 标准格式使内容创作更加便捷。
  • 更好的Unity版本间长期兼容性
  • 更便捷的第三方集成(例如,ReadyPlayerMe头像)

例外情况:一款基于实体组件System(ECS)的Unity游戏。如果您正在使用 Unity 的ECS架构,则应该使用Entities内容管理系统进行运行时资源管理。

对于工业项目而言,选择更多取决于指定的要求。

选择 GLB 的情况:

  • 使用标准3D模型
  • 需要跨平台兼容性。
  • 处理用户上传的内容
  • 需要平台无关的更新
  • 需要长期格式稳定性。

选择 3DDS 的情况:

  • 处理大型CAD/BIM模型
  • 需要渐进加载
  • 需要进行内存优化。
  • 保留复杂的层级结构和元数据是当务之急。
  • 需要Dynamic保真度缩放。
技术美术人员正在将叉车资源上传到Unity Asset Manager。

开始使用Asset Manager

Unity Asset Manager可帮助您在运行时之前组织和准备资源,为您选择的任何加载策略创建高效的管线。与Unity 编辑器和 Unity 的数据准备解决方案Pixyz集成后,Asset Manager可以:

  • 从创建、迭代到最终状态,集中管理您的源资产
  • Transform并准备用于运行时部署的资产
  • 在Unity 编辑器工作流程中高效地组织资源
  • 在不同资产格式之间进行转换
  • 充当实时3D文件代码仓库,这些文件可在运行时使用。

随着项目的增长,Asset Manager会随着Unity 编辑器许可证的扩展而扩展,以提供额外的存储和管理功能。

无论您是准备Asset Bundles 的资源、生成 glTF 文件,还是设置 3DDS 流式传输, Unity Asset Manager都能帮助您在开发过程中保持组织性和控制力。


Unity Asset Manager可以将数据直接导入运行时应用程序。一旦生成 gLTF 和 3DDS 数据,即可在运行时立即查看,无需构建时间。这简化了工业客户将其 CAD 和 BIM 数据直接导入Unity应用程序的过程。

Unity Asset Manager中办公室数字孪生的办公家具资源截图

了解更多

如果您想了解更多关于Unity Asset Manager解决方案的信息,检查查看以下资源:

Q&A

分享您在Unity中加载资源方面的经验和疑问。欢迎加入Unity Discussions论坛。

开始使用Unity Asset Manager