接着上一篇文章我们继续讲…
下面是目录 :
- 一、使用Label为资源分包
- 二、批量加载 Label 下的所有资源
- 三、Content Update Restriction 内容更新方式
- 1.Can Change Post Release(动态资源)
- 2.Cannot Change Post Release(静态资源)
- 四、Advanced Options 下内容讲解
一、使用Label为资源分包
1 . Addressables Group
窗口中,选择资源 Label
下的选择 Manage Labels
可以点击打开资源标签管理窗口
2.选择+号可以添加新的标签
3.再回到 Addressables Group
窗口中就可以为资源指定标签了
4.我们将上面提及的 Bundle Mode
改为 Pack Together By Label
则,之后打包则会按标签划分AB包。
5.标签可以设置多个标签,但不建议使用。
6.当加载了某个带标签的资源时,相同标签的资源将一同被加载。
二、批量加载 Label 下的所有资源
1.比如我们将这两个资源的 Label
同样设置为 LabelA
2.使用以下代码进行加载
AssetLabelReference textureLabel = new AssetLabelReference();
textureLabel.labelString = "LabelA";
Addressables.LoadAssetsAsync<GameObject>(textureLabel, (res) =>
{Debug.Log("加载了一个资源: " + res.name);
});
3.我们可以发现回调执行了两次,把下面两个资源都进行了加载
三、Content Update Restriction 内容更新方式
1.Can Change Post Release(动态资源)
发布后可更改
全部更新,后继更新的资源会替换旧资源,如Bundle有变化将整个bundle重新打包
于远程动态更新资源
2.Cannot Change Post Release(静态资源)
发布后不可更改
增量更新,后续的资源不改变原先资源包。用新增量资源改变内容。
新资源会一直按这个方式更新会形成依赖长链,旧资源会一直占缓存。
用于本地静态资源
如Bundle内资源变化了,会将其移动到新的分组。
四、Advanced Options 下内容讲解
名称 | 简介 | 作用说明 |
---|---|---|
Asset Bundle Compression | AB包压缩方式 | 当前资源组打包方方式 |
Include In Build | 加入构建中 | 当前资源组是否参与 |
Force Unique Provider | Force 唯一提供商 | 是Addressable否为该组提供独立的Resource Provider Class. 自定义的Provider需要勾选,但它不能与其他组共享。 |
Use Asset Bundle Cache | 使用资源缓存 | 是否使用资源缓存,不用的话每次都重新下载 |
Asset Bundle CRC | 是否校验Bundle包完整性: | 1.Disabled 不验证 2.Enabled,Including Cached 总是验证 3.Enabled,Excluding Cached 只验证正常下载的部分 |
Use UnityWebRequest for Local Asset Bundles | 使用UnityWebRequest为本地资产 | 该组的资源会使 UnityWebRequestAssetBundle.GetAssetBundle 代替 AssetBundleLoadFormFileAsync接口去加载本地资源 |
Request Timeout | 请求超时时间 | 下载远程资源包的超时时间 |
Use Http Chunked Transfer | 使用Http分块传输 | 下载时是否使用HTTP/1.1 chunked-transfer编码方式(2019.3以后已弃用) |
Http Redirect Limit | Http重新定向次数 | 下载资源时允许重新定向的次数,-1表示无限 |
Retry Count | 重试次数 | 下再资源包失败后重试的次数 |
Include Addresses in catalog | catalog是否记录Addressable | 是否将Addressable地址写入catalog, 如不需要地址加载则不勾选,减少catalog体积 |
Include GUIDs in Catalog | catalog是否记录GUID | 是否将GUID写入catalog 如使用AssetReferences则为必选, 否则可取消以较少体积 |
Internal Asset Naming Mode | 在catalog里如何为资源命名 | Full Path : 使用完整路劲 Filename : 使用文件名 GUID : 使用GUID串 Dynamic : Add动态使用 |
Internal Bundle Id Mode | 如何构建内部Bundle的ID | Group Guid: 将组和GUID祝贺起来,即名字不变 Group Guid project id hash: 使用GUID和云项目ID组合(如有云服务)如项目绑定不同的云项目,则会发生变化因其在项目间构建的ID是确定且唯一的,因而在多个项目中共享资源时,推荐使用。 Grup Guid Project Id Entries Hash: 使用GUID和云项目ID组合(如有云服务)和组里的资源条目进行组合。注意:这种模式容易导致包缓存版本问题。 |
Cached Clear Behaviour | 缓存清理时机 | Clear When Space is Needed in Cache: 光空间不时进行清理 Clear When When new Version Loaded: 当有新版本时进行清理 |
Bundle Mode | 分包方式 | Pack Together: 整个打成一个AB包 Pack Separately: 每个Gorup分别打成一个AB包 Pack Together By Label : 将相同Label的资源打成一个AB包 |
Bundle Naming Mode | 如何创建Bundle名称 | Filename : 使用组名 Append Hash to Filename : 使用组名 加 包内容哈希值 Use Hash of AssetBundle : 使用内容的哈希值命名 |
Asset Load Mode | 资源加载方式 | Requested asset and ependencies: 是否在请求时单独加载资源 All Packed Assets And Dependencies: 同时加载组内所有资源 |
Asset Provider | 定义哪个Provider类去加载资源 | |
Asset Bundle Provider | 定义哪个Provider去加载组产生的Bundle |