10.配置相关-PackedAssets打包资源数据配置
10.1 知识点
打包资产配置的作用
- PackedAssets配置文件在AssetGroupTemplates下
- PackedAssets翻译过来的意思是 打包资产(资源)
- Packed Assets的作用是确定如何处理组中的资源,比如可以指定生成AB包的位置和包压缩相关的等等设置
PackedAssets打包资产参数讲解
PackedAssets的作用是确定如何在内容中处理组中的资源,比如:你可以指定生成AB包的位置和包压缩相关的设置
Content Packing & Loading
- Build & Load Paths:配置文件路径对,定义可寻址构建系统在哪个路径为此组创建内容,以及可寻址系统在运行时在何处加载这些内容。比如在Profile窗口新建了Build Load Path Variables,那么可以选择自己新建的变量。一般custom就行。
- Build Path:打包路径
- LocalBuildPath-本地路径
- RemoteBuildPath-远程路径
- Load Path:加载路径
- LocalLoadPath-本地路径
- RemoteLoadPath-远程路径
- Path Preview:路径预览
AdvancedOptions:高级选项
Asset Bundle Compression:AB包的压缩方式,默认为LZ4,通常是最有效选项,建议使用
- Uncompressed:不压缩,包体较大,不推荐
- LZ4:压缩,相比LZMA稍大,建议使用,按需解压,内存占用低
- LZMA:压缩率最高,但解压慢,加载单个资源需要解压整个包
Include In Build:包含在构建中,决定是否在内容生成时包含此组中的资源。若未勾选,则在打包时不会包含该组内容
Force Unique Provider:强制唯一提供者,控制Addressable是否为此组使用资源提供程序类的唯一实例。如果有针对此组内资产类型的自定义提供程序实现,且这些提供程序无法在组间共享,则启用此选项。
Use Asset Bundle Cache:是否缓存远程分发的包
Asset Bundle CRC:是否在加载前验证AB包的完整性
- Disabled:始终不检查完整性
- Enabled, Including Cached:检查完整性,包括已缓存包
- Enabled, Excluding Cached:检查完整性,但不检查已缓存的包
Use UnityWebRequest for Local Asset Bundle:加载AB包时,是否使用UnityWebRequestAssetBundle.GetAssetBundle而非AssetBundle.LoadFromFileAsync
Request Timeout:下载远程包时的超时间隔时间
Use Http Chunked Transfer:下载包时是否采用HTTP/1.1块传输编码方法。在2019.3+版本中已被废弃并忽略
Http Redirect Limit:下载包时允许的重定向次数。无限制设为-1
Retry Count:对失败下载尝试重试的次数
Include Addresses in Catalog:是否在目录中包含地址字符串。若不通过地址字符串加载组中的资产,则可以排除它们以减小目录大小。通俗地说,即是否通过资源名加载。
Include GUIDs in Catalog:是否在目录中包含GUID字符串。若要使用AssetReferences或GUID字符串加载资产,则必须包含它们。若不使用AssetReferences或GUID加载组中资产,则可以排除它们以减少目录大小。
Include Labels in Catalog:是否在目录中包含标签字符串。若不通过标签加载组中的资产,则可以排除这些标签来缩小目录大小。
Internal Asset Naming Mode:决定在目录中如何命名资源
- Full Path:全路径
- FileName:文件名
- GUID:资源的Guid字符串
- Dynamic:Addressables根据组内资源自动选择最短的内部名称
Internal Bundle Id Mode:决定如何构建资产包的内部ID。比如,当设置为组GUID选项时,Addressables通过将组名与包GUID字符串结合来创建包ID。
- Group Guid:组的Guid
- Group Guid Project Id Hash:组ID与工程ID的哈希
- Group Guid Project Id Entries Hash:组ID与工程ID项的哈希
Cache Clear Behavior:确定应用程序何时从缓存中清除AB包
- Clear When Space Is Needed In Cache:当缓存需要空间时清除
- Clear When New Version Loaded:加载新版本时清除
Bundle Mode:打包模式,决定如何将此组内的资产打包进包中
- Pack Together:创建包含所有资产的单个包
- Pack Separately:为组中的每个主资产创建一个包
- Pack Together by Label:为具有相同标签集合的资产创建一个包
Bundle Naming Mode:决定如何构造AB包的文件名
- Filename:文件名
- Append Hash to Filename:将哈希附加到文件名
- Use Hash of AssetBundle:使用AB包的哈希
- Use Hash of FileName:使用文件名的哈希
Asset Load Mode:资源加载模式
- Requested Asset And Dependencies:请求的资源及其依赖项
- All Packed Assets And Dependencies:所有包中的资源及其依赖项
Asset Provider:资源提供者,定义Addressable用于从此组生成的AssetBundles加载资产的提供程序类。除特殊情况需要自定义提供程序实现外,通常设置为AB包提供器。
- Content Catalog Provider:内容目录提供器
- AssetBundle Provider:AB包提供器
- Assets from AssetDatabase Provider:资源来自资源数据库提供器
- Sprites from Atlases Provider:精灵来自图集提供器
- Assets from Bundles Provider:资源来自绑定提供器
- Json Asset Provider:Json资源提供器
- Assets from Legacy Resources Provider:资源来自遗留Resources提供器
- Text Data Provider:文本数据提供器
- Virtual AssetBundle Provider:虚拟AB包提供器
- Assets from Virtual Bundles:资源来自虚拟绑定
ContentUpdateRestriction:内容更新限制
- UpdateRestriction:更新限制
- Can Change Post Release:可以改变发行后内容,该模式不移动任何资源,如果包中的任何资源发生了更改,则重新构建整个包
- Cannot Change Post Release:无法改变发布后内容,如果包中任何资源已经改变,则[检查内容更新限制]工具会将其移动到为更新创建的新组中。在进行更新构建时,从这个新组创建的AssetBundles中的资产将覆盖现有包中的版本。
Add Schem:添加模式
- 你可以将任意数量的架构模式分配给一个组
- Content Packing Loading:内容打包加载相关
- Content Update Restriction:内容更新限制
- Resources and Built In Scenes:在内置数据中显示哪些类型的内置资源,可以选择是否显示 资源和内置场景
- 我们甚至可以通过继承AddressableAssetGroupSchema定义自己的架构模式
创建自定义的配置
创建自定义的配置
在Project窗口右键或者点击+号 -> Create(创建) -> Addressables(可寻址) -> Group Templates(组模板) -> Blank Group Template(空白组模板)
可以在AddressableAssetSettings可寻址资源数据设置的组模版设置中添加新创建的自定义打包配置。
创建组的时候就能创建自己的模版了
比如我们把自定义的组配置改成远端,这样创建要更新的组直接用这个远端配置就行,就不用每一个组都手动自己改成远端了。
总结
对于我们来说,关于组的设置参数,我们必须要掌握的就是可以为每一个组设置打包和加载的路径,远程加载还是本地加载,都在组中进行设置。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com