关于API的描述
Addressables.LoadAssetAsync : 该接口异步加载资产。功能类似Resource.Load
Addressables.InstantiateAsync : 该接口可以直接通过地址来实例化物体。(内部实现Load Instantiate)
Addressables.ReleaseInstance : 该接口卸载实例化的对象。 与InstantiateAsync配套使用
Addressables.Release : 该接口卸载不能实例化的资源。功能类似Resource.unload
获取是否有资源要下载,如果有获取下载总大小
Addressables.InitializeAsync() 加载Catalog文件(类似于总配置)
Addressables.CheckForCatalogUpdates(false) 检查网络端的资源表 Catalog
Addressables.UpdateCatalogs(lstCatalogs, false) 下载对应资源表 得到一个list<string>的资源更新列表
Addressables.GetDownloadSizeAsync(m_lstUpdatekeys); 检查要下载的资源所在的bundle还有依赖的bunlde的大小
注:打包的时候将Disable Catalog Update on Startup勾选上
开始下载,并能获取下载速度,进度
Addressables.DownloadDependenciesAsync(m_lstUpdatekeys, Addressables.MergeMode.Union); 下载资源和依赖的bundle
downLoadHandle.PercentComplete 获取进度
Disable Catalog Update On Startup 复选框
- 不勾选:那么每次AA系统初使化的时候会自动去更新Catalog
- 勾选:那么将不会自动更新Catalog文件,意味着不会自动更新资源。
一般是勾选上的,目的是为了我们自己控制catalog的更新时机
Build Remote Catalog 复选框
- 勾选: 要通过AA系统更新资源,则必须勾选这个选项,在构建AB包的时候才会生成对应的catalog文件,来记录AB包的hash值和地址.
BundleMode
PackTogether 整个Group中的资源打成一个AB包
PackSeparately 每个资源分别打包为AB包
PackTogetherByLabel 是根据标签来决定哪些资源应该打成一个AB包
Content Update Restriction(ContentUpdateGroupSchema) (不清楚意味着什么?)
- Can Change Post Release 非静态包,可以在AB包发布后被修改?
- Cannot Change Post Release 静态包,AB包在发后不能再被修改?
关于出资源包
1.配置Profiles
本地打包路径,本地加载路径,远程打包路径,远程加载路径
2.在Groups中选择配置好的Profiles
3.配置AssetSettings
远程资源需要勾上 Build Remote Catalog
BuildPath : RemoteBuildPath
LoadPath: RemoteLoadPath
4.PlayModeScript选译
Use Existing Build
5.Build
New Build -> Default Build Script
资源文件会生成在RemoteBuildPath文件目录中
关于出更新资源包
1.确定资源是否修改完成
2.Build->Update a Previous Build
3.选择在AddressableAssetsData目录中的[BuildTarget]平台目录中addressables_content_state
将打包好的资源拷贝至资源服,即可更新