可寻址资源的主要优点之一,是将如何规划、构建和加载进行分离。以前这些都是紧密地联系在一起。
1、传统资源管理
如果在 Resources 目录中规划内容,该内容将内置到应用程序中初始包里,并且必须使用Resources.Load 提供资源路径的方法来加载内容。
要访问存储在其他位置的内容,则使用 直接引用 或资源 bundles。
如果使用资源 bundles,则将再次按路径加载根据一些策略组合起来。如果资源 bundles是远程的,或依赖于其他 bundles,则必须编写代码来管理所有 bundles 的下载、加载和卸载。
2、可寻址资源管理
为资源提供地址,无论您在项目中的任何位置或如何构建资源,都可以使用该地址加载该地址。
您可以更改可寻址资源的路径或文件名而不发生问题。您还可以将可寻址资源从Resources文件夹或本地构建目标移动到其他构建位置(包括远程构建位置),而无需更改加载代码。
资源组结构(Asset group schemas)
schemas定义了一组数据。你可以在 Inspector 上把一个schemas绑定到一个Asset Groups上。附加到组的schemas定义了构建它下面的资源内容。
例如,在打包模式下构建时,带有 BundledAssetGroupSchema 模式的组将充当资源 bundles的来源。您可以将schemas组合到用于定义新组的模板中。您可以通过 AddressableAssetsSettings 检查器添加架构模板。可以将模式集组合到用于定义新组的模板中。
3、构建脚本
构建脚本ScriptableObject 实现IDataBuilder接口的资源在项目中。用户可以创建自己的构建脚本,然后AddressableAssetSettings通过其检查器将它们添加到对象中。要在Addressables Groups 窗口(Window > Asset Management> Addressables > Groups)中应用构建脚本,请选择“Play Mode Script”,然后选择一个下拉选项。当前,已实现三个脚本来支持完整的应用程序构建,并提供三个用于在编辑器中进行迭代的播放模式脚本。
播放模式脚本(Play mode scripts)
可寻址资源包具有三个构建脚本,这些脚本创建播放模式数据以帮助您加速应用程序开发。
-
使用资源数据库(更快):Use Asset Database (faster)
使用资源数据库模式(BuildScriptFastMode)可让您在游戏流程中快速运行游戏。它直接通过资产数据库加载资产,无需分析或创建资产束即可进行快速迭代。 -
模拟组(高级):Simulate Groups (advanced)
“模拟组”模式(BuildScriptVirtualMode)可以分析内容的布局和相关性,而无需创建资源 bundles。资源通过从资源数据库ResourceManager加载,就好像它们是通过 bundles 加载的一样。要查看游戏过程中 bundles 何时加载或卸载,请在“可寻址事件查看器”窗口(Window > Asset Management > Addressables > Event Viewer)中查看资产使用情况。
“模拟组”模式可帮助您模拟加载策略并调整内容组,以找到生产版本的适当平衡。 -
使用现有版本:Use Existing Build(requires built groups)
使用现有构建模式最接近于已部署的应用程序构建,但是它要求您将数据构建为一个单独的步骤。
如果您不修改资源,则此模式是最快的,因为它在进入播放模式时不会处理任何数据。您必须通过选择 Build > New Build > Default Build Script 在 Addressables Groups窗口中(Window > Asset Management > Addressables > Groups)或使用游戏脚本中使用AddressableAssetSettings.BuildPlayerContent()方法,构建该模式内容。
4、分析与调试(Analysis and debugging)
默认情况下,可寻址资源仅记录警告和错误。
通过打开编辑器“Player settings”窗口(Edit > Project Settings… > Player),导航到 Other Settings > Configuration 部分,然后在 Scripting Define Symbols 字段中添加ADDRESSABLES_LOG_ALL,可以启用详细的日志记录。
您还可以通过在AddressableAssetSettings对象检查器中取消检查Log Runtime exceptions选项来禁用异常。