Unity Addressables资源更新流程(基于windows分析)

基于windows加载流程分析资源加载、更新流程,具体配置及基础知识参考其他资料。

重要的三个目录:
a.Library\com.unity.addressables\aa:默认构建资源存放目录,打执行文件时,会将里面资源拷贝到streamingAssetsPath目录。目录里面重要文件:
aa\Windows\settings.json(f1):打包资源全局配置文件,包含更新资源地址(d1)、本地bundle目录配置读取路径(d2)、远程bundle配置更新读取路径(d3)等信息。
aa\Windows\catalog.json(f2):所有bundle定义目录,主要用于本地资源读取。

b.C:\Users\lx\AppData\LocalLow\DefaultCompany\My project\com.unity.addressables:可读写目录,更新资源后,将配置写入此目录,包含两个文件:
catalog_0.0.1.hash(f3):记录当前目录配置文件的hash值
catalog_0.0.1.json(f4):构建的资源配置文件,包含bundle及读取等信息。

c.C:\Users\lx\AppData\LocalLow\Unity\DefaultCompany_My project:资源缓存目录,如果bundle资源缓存了,UnityWebRequest在通过url加载对应bundle时,会先判断是否有缓存,然后对比hash值,如果不需要更新,直接从缓存读取。如果需要更新,则从服务器加载。

资源更新流程:
1.启动时,根据f1文件初始化,需要读取本地bundle(不更新的)时,根据f2配置读取。
2.读取f3文件hash值,与远程对应文件hash值比较,如果一致,则不更新f4文件,否则更新。如果第一次启动程序,则更新f3、f4文件到对应目录。如果没有读取到远程hash值,加载本地缓存。
3.读取可更新bundle时,判断本地缓存和对应hash值,如果不一致会更新bundle,如果一致,从缓存目录c加载。bundle配置数据为json串,用Base64加密数据,在f2和f4文件的m_ExtraDataString中存储,具体可以参见源码。

修改打包资源存放路径:
在这里插入图片描述
在这里插入图片描述
先点击2、再点击3后输入地址即可自定义打包资源存放路径。点击1、再点击3改变打包资源报错。

猜你喜欢

转载自blog.csdn.net/lcl20093466/article/details/124844086