10.PackedAssets配置文件

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

×

喜欢就点赞,疼爱就打赏