
通过 Addressables 简化您的内容管理
了解 Addressable Asset System 如何在编辑和运行时简化您的内容管理,使您的游戏初始和更新版本更加顺畅和容易。本文基于 Bill Ramsour 在 2019 年 Unite Copenhagen 上的 Live Content 团队的演讲。
Addressables 概述
Addressable Asset System(即 Addressables)是一个 Unity 编辑器和运行时资产管理系统,改善了对大型制作团队复杂实时内容交付需求的支持。该系统使用异步加载来支持从任何位置加载任何依赖项集合。通过更有效地打包资产包并减少迭代时间,Addressables 提供了一种简单的方法,使您的游戏更加动态。
Addressables 解决了开发人员在迭代时间、依赖管理、内存管理和内容打包等方面的挑战。

Addressables 工作流程
一旦资产(例如 Prefab)被标记为“可寻址”,它将生成一个可以从任何地方调用的地址。无论资产位于何处(本地或远程),系统将定位它及其依赖项,然后返回它。资产是您用来创建游戏或应用程序的内容。资产的常见示例包括 Prefabs、纹理、材料、音频剪辑和动画。
Addressables 抽象化资产包以提高内容管理的效率,同时包含资产及其所有基础数据。
在 Addressables 工作流程中,请求首先通过目录系统。系统将地址解码为一个位置,该位置由构建过程中生成的数据组成,关于资产是什么、其依赖关系、是否是本地或远程等。
从目录中,请求通过提供者系统。一个或多个提供者使用这些位置来查找内容,然后将其返回到设备。
在 Addressables 中,运行时是异步的。这使您能够在需要时检索资产,无论它在哪里——其位置可能会根据您所处的开发阶段而变化——而无需更改游戏代码。

Addressables 组
当您将某个东西标记为可寻址时,它成为 Addressables 组的一部分,这是可寻址资产及其数据的容器。您可以在组窗口中可视化这些组,组窗口是 Addressables 的主基地。组可以确定该资产是否将是本地设备上的资产或在服务器上。
Addressables 组上的数据保存在模式中,这些模式是数据合同。其中一个模式专注于您的资产和内容将如何构建成包。构建路径 和 加载路径 是更有用的设置之一,允许您通过从下拉菜单中选择变量来设置您的内容为本地或远程。
在 Addressables 配置文件系统中,您为 Addressables 组创建一个配置文件,然后为给定的配置文件定义您希望变量评估的内容。这使您能够设置组上的数据,并远程更改它,而无需重新编码该组的任何部分。
制作
为了充分利用 Addressables,帮助您以希望发布游戏的方式可视化数据。您不必承诺于某种结构,因为在开发过程中更改配置文件变量很容易,但您应该有一个组织包的总体方法。
例如,如果您希望将游戏与远程内容一起发布,但希望在开发期间该内容为本地,您可以创建一个配置文件,其中远程路径指向流媒体资产。通过这种方式,您可以全局更改所有远程内容为本地,而无需触及组的代码。

编辑器托管
有时您需要在服务器上托管内容。您可以设置远程路径,而不是指向实际的URL,使用您的托管服务定义的变量。
当您启用托管时,托管服务会在编辑器中设置HTTP主机。您可以将设备或播放器连接到此主机,以便进行测试。
编辑器托管的一个强大功能是您可以将所有内容设置为远程。这对内容开发者和艺术家尤其有用,因为您可以构建播放器并将其部署到设备上,同时继续迭代您的内容。您不必重新部署播放器或担心将内容从一个设备移动到另一个设备。 查看我们的文档以了解有关使用Addressables创建和配置托管服务的更多信息。
虽然Addressables解决了支持动态内容的许多关键技术挑战,但“最后一公里”问题仍然存在——将素材资源托管和交付给实时生产游戏和应用程序。今年晚些时候,我们将推出一个企业级的全球内容托管解决方案,完全整合到Addressables系统中。如果您想了解更多关于此服务的信息,请在这里注册。
如何在 Addressables 中加载资产
实时内容团队一直在努力优化工作流程,以加快您的工作速度,包括几种快速加载素材资源的方法。
如何在Addressables中加载素材资源?
通过地址:程序员通常通过字符串加载可寻址资源,使用资产的位置标识符以便于运行时检索。
通过标签:提供额外的可寻址资产标识符,以便于运行时加载相似项目。
通过AssetReference:AssetReference的操作类似于直接引用,但具有延迟初始化的特性。AssetReference对象将GUID存储为可寻址的内容,您可以按需加载。在编辑器中工作的艺术家可能更喜欢这种工作流程。
如果您引用的资产具有子对象(例如 SpriteAtlas 中的精灵),您可以进一步引用子对象。
如果您想查看 Addressables 和精灵加载过程的实际效果,请查看会话的 精灵演示部分。

自定义构建
Addressables 包含三个构建脚本,用于创建 Play Mode 数据,以帮助您加速应用程序开发。这些脚本是 使用资产数据库,模拟组 和 使用现有构建。
使用资产数据库 脚本。这使您可以在迭代内容时在 Play Mode 中进出;您可以在处理游戏流程时快速运行游戏。它直接通过资产数据库加载资产,以便快速迭代,无需分析或创建资产包。
模拟组 分析内容的布局和依赖关系,而不创建资产包。要查看在游戏过程中何时加载或卸载包,请在 Addressables 事件查看器窗口中查看资产使用情况 (窗口 > 资产管理 > Addressables > 事件查看器)。此模式帮助您模拟加载策略并调整内容组,以找到适合生产发布的正确平衡。
使用现有构建 脚本类似于已部署的应用程序构建,但需要您将数据作为单独的步骤构建。如果您不修改资产,此模式是最快的,因为在进入 Play Mode 时不会处理任何数据。
在哪里可以了解有关 Addressables 的更多信息?
如果您想在项目中使用 Addressables,请查看 Addressable Asset System 文档 以了解如何入门。阅读我们的 博客文章,查看 GitHub 示例,或加入 论坛 的讨论。
云内容交付:最后一公里
于 2020 年 9 月推出的 Cloud Content Delivery (CCD) 是我们自己的企业级全球内容托管解决方案,完全集成到 Addressables 系统中。使用 CCD,您可以轻松构建和发布游戏更新,借助强大的资产管理和通过云进行内容交付,这是运营实时游戏和应用程序的基本功能。了解更多信息并 在此注册。