Addressables资源管理总目录
1.Schema
翻译为:模式,计划。
目前理解为每个组的打包设置。
默认设置是只有两个
Content Update Restriciton
和
Content Packing& Loading
2.Content Update Restriction 内容更新方式
Can Change Post Release(动态资源)【默认】: 发布后可更改。
全量更新,后续更新资源会直接替换旧资源。
如果这个Bundle内的资源变化了, 整个bundle都会被重新打包。
(比较适合作为远程动态更新资源)
Cannot Change Post Release(静态资源): 发布后不可更改。
增量更新,后续更新资源不改变旧资源包,使用新增量资源包加载改变的内容。
旧资源会一直占用缓存,新资源如果一直按照静态资源包在更新则会形成依赖长链。
如果这个Bundle内的资源变化了,工具就会将这些资源移到新的分组。
(Unity建议所有本地资产作为静态资源)
3.检测生成静态包的增量包
生成静态包后,并改变了静态包的内容,这时可以点击检测生成增量包
选择检测文件
详细流程:
先将默认组设置成了静态打了个资源包
然后修改了预制体图片的大小
再点击 Check for Content Update Restrictions
选择要检测的 addressables_content_state.bin 文件
注意: 必须保存好最 终发布版本 的 addressables_content_state.bin 文件,
因为后面每次更新构建都需要与这个文件进行对比。
新生成的增量包则是默认为远程包。
4.Content Packing & Loading
Build and Load Paths
这个决定了资源构建路径和加载路径。
Advanced Options
机翻
1.Asset Bundle Compression | 当前组资源的打包压缩方式。 |
2.Include In Build | 当前组的资源是否参与打包. |
3.Force Unique Provider | 是否让Addressables为该组提供独特的 Resource Provider Class。 如果有自定义的Provider实现,则需要勾选, 但是这个自定义Provider不能再组和组之间共享。 |
4.Use Asset Bundle Cache | 是否缓存远程的资源 (不缓存则每次都重新下载) |
5.Asset Bundle CRC | 在加载的时候是否验证Bundle的完整性 - Enabled, Including Cached【默认】: 总是验证 - Enabled, Excluding Cached:只验证,正在下载的那部分 |
6.Use UnityWebRequest for Local Asset Bundles | 在该分组的资源加载中使用 UnityWebRequestAssetBundle.GetAssetBundle 接口 代替 AssetBundle.LoadFromFileAsync接口 去加载本地资源。 |
7.Request Timeout | 下载远程包的超时时间 |
8.Use Http Chunked Transfer | 下载的时候是否使用HTTP/1.1 chunked-transfer编码方法 (在Unity2019.3+已经被废弃) |
9.Http Redirect Limit | 下载资源包时允许的重定向次数,-1代表无限制 |
10.Retry Count | 下载失败的重试次数 |
11.Include Addresses in catalog | 是否将地址写进catalog, 如果这个组内的资源不需要通过地址加载, 可以取消该项来减少catalog的体积。 |
12.Include GUIDs in Catalog | 是否将GUID写进catalog。 如果使用了AssetReferences,则必须勾选该选项。 如果没有使用AssetReferences的方式或者用GUID作为key去加载, 则可以取消勾选来减少catalog的大小。 |
13.Include Label in Catalog | 是否将Label写进catalog。 |
14.Internal Asset Naming Mode | 在catalog里如何为资源命名 - Filename: 资源的文件名 - GUID: 用GUID串 - Dynamic: Addressables根据组内的资产选择最小的内部命名 |
15.Internal Bundle Id Mode | 决定如何去构建Internal ID - Group Guid:将组名字和GUID组合起来命名, 也就是说这个名字不会改变。 - Group Guid project id hash【默认】: 使用组GUID和云项目Id的组合(如果启用了云服务)。 如果项目绑定到不同的云项目Id,则会发生变化。 当在多个项目之间共享资产时,建议使用这种模式, 因为在项目之间构造的id是确定的且惟一的。 - Group Guid Project Id Entries Hash: 使用组GUID、云项目Id(如果启用了云服务)和 组中的资产条目的组合。 注意:使用这种模式很容易导致包缓存版本问题。 添加或删除条目会产生不同的散列。 |
16.Cached Clear Behaviour | 决定什么时候清理缓存 - Clear When Space Is Needed In Cache【默认】:空间不足时清理 - Clear When When New Version Loaded:有新版本时清理 |
17.Bundle Mode | 如何打包进Bundles - Pack Separately: 为组中的每一个资源创建一个Bundle。 如精灵表中的精灵会被打包在一起。 添加到组中的第一层文件夹也打在一起。 - Pack Together by Label:按照Label划分Bundle |
18.Bundle Naming Mode | 如何创建bundle的名字 - Filename:使用组名字符串。 - Append Hash to Filename【默认】:使用组名+包内容的哈希值。 - Use Hash of AssetBundle: 使用包内容的哈希值命名 - Use Hash of Filename:使用组名字符串计算出来的哈希值。 |
19.Asset Load Mode | 资产加载方式 -Requested asset and ependencies【默认】: 是否在请求时单独加载资产 -All Packed Assets And Dependencies: 总是同时加载组中的所有资产。 |
20.Asset Provider | 定义用哪一个Provider 类去加载组内的资源 -Assets from Bundles Provider【默认】: |
21.Asset Bundle Provider | 定义用哪一个Provider 去加载这个组生成的Bundle -AssetBundle Provider【默认】: |