实习前理解错了mentor的意思,任务没完成TAT,火速学习一下addressable,另外狠狠吐槽北京健康宝弹窗。
资源打包方式
可热更资源类型:预制件、材质、贴图、模型、场景、shader、动画与控制器(除代码外所有资源)
打包方式:按照标签、按照资源路径、打包插件(压缩选项与文版文件)
Addressable
作用:①对assetbundle的包装②内存管理
支持资源引用计数
自动资源寻址:指定资源名称不用关心放在哪里,一个可寻址的引用,无论资源在云端还是本地。
远程/本地热更新对开发者透明,
菜单栏 window assets management --addressable- group 打开,添加拖拽即可,可以在其中重命名,默认的组为本地,远端则需要修改组设置: remoteloadpath为上传网址
制作AssetBundle
三种测试模式:不打包 模拟打包 真正打包
第三种 每次修改都需要重新打包才能生效
第一种和在本地类似
第二种模拟打包便于测试
加载资源时如场景,不能用LoadScene,要使用异步的API:
Addressables.LoadSceneAsync(。。。);//加载
Addressables.UnLoadSceneAsync(。。。);//返回
获取要下载资源的大小:
Addressables.GetDownloadSizeAsync(levelReferences[index].RuntimeKey)
下载资源:
Addressables.DownloadDependenciesAsync();
显示下载的百分比,因为每一帧都要显示 百分比故使用携程,下载资源的api上面提到的,返回的时AsyncOperationHandle,包括资源以及相关的状态信息途径信息过程信息,有关Async的方法都返回 AsyncOperationHandle。
在下面BundleMode中可以选择打包到一起还是分开打包(示例中的Remote group中的资源)
打包资源:在测试模式选择旁边的build,即可完成打包,打包后将资源上云等方式存储,将URL保存,打开addressable groups在测试模式旁边的tools-window-profiles 更改remoteloadpath路径为保存资源的网址。