1.Content Update的设置
(1). AddressableAssetSettings
勾选 Build Remove Catalog才会发布Catalog版本文件,开启热更功能。同理,下面的BuildPath和LoadPath指的是Catalog版本文件的路径。
Disable Catalog Update on Startup是指禁用启动Addressable时,自动更新Catalog的功能。如果不勾选,根据Assetreference等加载资源时,会自动比对Catalog,下载新资源进行加载。
(2). AddressableAssetGroup
这里的BuildPath和LoadPath指的是Bundle的打包加载路径,对于热更新(Hotfix)的资源(初始打包在本地,更新下载新资源,加载新资源),必须选择LocalBuildPath和LocalLoadPath,以及Cannot Change Post Release。这个选项名称有些反直觉,但Post Release指的是远程加载Bundle(Remote Load),而不是热更新(Hotfix)。
如果选择了Can Change Post Release,则对应的BuildPath和LoadPath也要选择Remote路径。这样一来,打包时Bundle会打到RemoteBuildPath,而运行时只会加载RemoteLoadPath的bundle(非Hotfix,不存在初始加载的本地资源版本)。如果RemoteLoadPath下不存在对应的Bundle,加载时会直接报错。
(3). 具体Hotfix步骤。
此处只做备份,可参考如下链接
Unity Addressable学习笔记二(Hosting热更新)
2. Bundle管理
(1). AddressableAssetGroup
对于Bundle Mode,分为Pack Together(打成一个Bundle),Pack Seperately(每个Entry生成单独Bundle),Pack Together By Label(相同Label的所有Entry打成一个Bunle)。这里是最高级设置,例如一旦选择了Pack Together或Pack Seperately,就算Group中Entry设置了Label也不会影响打包Bundle。
对于Bundle Naming Mode,很多人喜欢直接使用FileName不附加hash,这样更加直观。但可能会遭遇问题:
Addressable打包.exe后加载资源失败
无法保证Bug是否会复发,请测试后谨慎选择Bundle Naming Mode。