Unity Addressables 配置与工具(二)

721 阅读6分钟

AddressableAssetSettings文件

选中 Assets -> AddressableAssetsData -> AddressableAssetSettings 路径下的该文件。该文件是Addressables系统的一个关键配置文件,在Unity中以asset格式存在。下面会描述其主要设置项内容和作用,次要或不常用的可以通过Addressables官方手册AddressableAssetSettings reference进行查阅。

  • Profiles:选择不同的配置文件,这些配置文件可以定义本地和远程资源地址、构建和加载路径等。通常这些配置文件可用于测试环境和生产环境之间的切换,使两个环境的配置信息保持独立。
  • Diagnostics:提供了一系列工具和设置,用于帮助开发者诊断、监控和优化资源加载和管理过程中的问题。
    1. Send Profiler Events(发送探查器事件) :勾选后,Addressables系统将发送探查器事件,这些事件可以在Unity Profiler中查看。用于分析资源加载时间、内存使用情况以及其他性能指标。(使用其分析工具时需要进行勾选)
    2. Log Runtime Exceptions(日志运行时异常) :勾选后,任何在资源加载过程中发生的运行时异常都将被记录到日志中。有助于快速定位和解决加载资源时出现的问题。
  • Catalog:与资源的构建、加载和管理相关。
    1. Player Version Override:用于控制如何命名远程目录,将会覆盖用于指定远程目录名称的时间戳。使用自定义的命名可以更容易地跟踪和管理不同版本的资源目录;可以更灵活地部署和更新资源,例如只更新特定的资源组或针对特定的用户群体进行更新。
    2. Compress Local Catalog:通过将目录中的数据进行压缩减少目录的存储大小,从而节省存储空间。但相应地会增加构建和加载目录的时间。
    3. Build Remote Catalog:勾选后,会构建远程数据,将项目中的资源打包成一个或多个目录文件,并将这些文件配置为可以从远程服务器进行加载。(热更作为远程数据需要勾选)
    4. Only update catalogs manually:勾选后,系统在运行时初始化时将不会自动检查远程服务器以获取更新的目录。需要手动触发目录的更新检查,以便更精确地控制更新过程。
  • Update a Previous Build:已经发布的应用程序基础上的更新内容相关设置。
    1. Check for Update Issues:选择自动分析和检测在更新过程中可能遇到的问题或潜在冲突。
    2. Content State Build Path:选择addressables_content_state.bin创建后的存放地址。
  • Build:构建相关设置。
    1. Build Addressables on Player Build:选择Unity如何构建可寻址内容作为播放器构建的一部分。
    2. Ignore Invalid/Unsupported Files in Build:勾选后,可以从生成脚本中排除无效或不受支持的文件,而不是中止生成。
    3. Unique Bundle IDs:为每个生成的Bundle创建一个唯一的名称,即使它们具有相同的文件名或路径。
    4. Contiguous Bundles:优化Bundles的存储和加载的布局方式。注意1.21.1及更早版本生成了使用中的Bundles需要禁用。
    5. Non-Recursive Dependency Calculation:当资源具有循环依赖关系时,勾选该选项可以缩短构建时间并减少运行时内存开销。
    6. MonoScript Bundle Naming Prefix:于给包含MonoScript对象的AssetBundles添加一个特定的前缀。在支持热更新的项目中使用命名前缀可以更容易地识别和替换包含更新后MonoScript的Bundles。
  • Build and Play Mode Scripts:设置构建与编辑器运行中如何处理访问资源。(Create->Addressables->Group Templates->Blank Group Template进行创建)
  • Asset Group Templates:定义可用于创建新组的模板列表。(Create->Addressables->Group Templates->Blank Group Template进行创建)
  • Initialization object list:配置项目的初始化对象,可以指定缓存资源应该存储在哪里。(Create->Addressables->Initialization->Cache Initialization Settings创建并添加入该列表,指定缓存位置)

Addressables Profiles窗口

通过 Window -> Asset Management -> Addressables -> ProfilesAddressables Groups窗口AddressableAssetSettings文件 的Profiles内容的Manage Profiles按钮均可打开该窗口。该窗口展示了构建的配置信息,定义本地和远程资源地址、构建和加载路径等。这里窗口信息比较简单易懂,就不过多介绍了。

Addressables Groups窗口

通过 Window -> Asset Management -> Addressables -> Groups 打开该窗口,它是启动资源构建和访问Addressables系统的工具和配置的中核心交互窗口。

Group是Addressables系统中最为核心的组织管理单元,每个Group独立管理它包含的所有资源。例如分包策略下,可以用两个Group来进行Bundle的构建,一个跟随安装包,一个放置到远端服务器,减小初始包体大小。

窗口中列表是Groups列表,用来显示项目中的可寻址组,展开列表中的Group以显示其包含的资源甚至是组合资源。

左上方 New -> Packed Assets 用来创建新的Group,即会在AddressableAssetsData/AssetGroups目录下创建对应Group配置文件。

Tools选项中有很多贴心工具提供给开发者,这里只筛选Window中部分进行简要说明:

  • Labels:管理自定义标签,在Group列表中的资源均有Labels标签,可以选择已定义列表中的标签,它便于分类、组织、过滤和引用这些资源。通过使用标签,可以更加灵活地管理项目中的资源,提高开发效率和资源利用率。
  • Analyze:分析项目中资源的布局和使用情况,并提供可视化的界面来展示资源的加载、卸载、内存占用等信息。通过它可以快速定位Bundles中可能存在的问题,如资源重复、缺失、加载时间过长等。
  • Hosting Services:可以开启了一个本地的简易服务器用以进行相关测试。
  • Event Viewer:用于监视和诊断Addressables资源管理的工具。

Addressables Asset Group文件

选中Addressables Groups窗口中任意Group后,可以查看该Group的配置,简单介绍其配置内容:

  • Prevent Updates:字面意思禁止更新,勾选后如果进行更新构建,那么将会重构整个Bundle。(老版本中是Updates Restriction选项)
  • Build & Load Paths:选择构建位置,下拉列表选项为Profiles的内容。
  • Include In Build:勾选后,整包中将会携带该Group的Bundle。
  • Force Unique Provider:当启用此选项时,为此Group提供唯一的Provider来负责加载和提供该资源。
  • Use Asset Bundle Cache:勾选后,将会缓存自远程下载的Bundles。
  • Cache Clear Behavior:选择清理缓存下来的Bundles的时机。
  • Bundle Mode:设置如何将此Group中的资源打包为Bundle。
    1. Pack Together:将整个Group内的资源打进一个Bundle包。
    2. Pack Separately:将Group组中每一个主资源打成独立的Bundle包,主资源也就是Group中资源列表里高亮显示的部分。
    3. Pack Together by Label:将同样Label的资源打成独立的Bundle包。
  • Bundle Naming Mode :如何命名Bundle包。(选择Filename会覆盖同名Bundle)