Unity资源热更及代码热更_第三章
之前解析了,打普通包,和热更包,对应的具体逻辑; 开始使用一下; 打初始包的入口;
完成打包后,对应的ab包,生成、存放在这个文件夹
对应上者ab包,所有的md5码列表,生成的bytes文件,存放在Version版本对应的文件夹下
代码上,这里定义了,加载AB包的路径,是streamingAssetsPath文件夹,对应了unity的StreamingAssets位置
全选,复制ab包,粘贴到StreamingAssets文件夹,自动生成对应的meta文件
在ResourceManager资源管理器的具体逻辑里,这个m_LoadFormAssetBundle布尔,是判断是否要加载ab包,修改,设置为true即可
HotFixPanel预制体,是对应热更,进游戏前的进度条,下载、加载逻辑相关
对应的脚本,是HotFixUi具体逻辑,存在Unity_Editor的宏,测试阶段,先调用StartOnFinish函数接口,最终会调用,游戏开始,ab资源加载入口
存储资源依赖相关的,是m_ResouceItemDic字典容器,其中对应的资源ResouceItem逻辑结构,包含crc校验码,guid,切换场景是否清除等字段
继续,还有一个RefCount获取器,调用的m_RefCount总数,指的是资源的调用次数
开始游戏后,这是加载ab资源相关的入口
LoadAssetBundleConfig函数接口,拿到ab包所在位置,通过AES加密算法的AESFileByteDecrypt函数接口,完成资源解密
继续,调用内置接口,完成解序列化的相关操作,再构建ResouceItem资源实体,添加到m_ResouceItemDic资源字典容器即可
运行游戏,这就已经是,从ab包,加载图片了
然后,开始测试热更包,右键点击,选择画图编辑,修改
打开文件,需要用到WindowsFile的脚本逻辑,其中的OpenFileName类,包含打开文件的,各个相关属性
调用导入的是,windows内置的,打开文件对话框,需要依赖于Comdlg32.dll 程序集
打资源热更包的入口
声明的仨变量,分别是md5码路径、热更版本号、OpenFileName是上述解析的,用于windows打开对话框的相关类
OnGUI的编辑器刷新逻辑,完成ABMD5的路径选择,资源热更补丁的版本设定,最后,再调用BundleEditor.Build的函数接口即可; 第一个传参hotfix的布尔为true,就会调用,之前解析过的,ReadMd5Com函数接口逻辑,对比已有的ab包,根据md5差异,生成资源热更包;
入口,表现
选对应版本的,ABMd5列表,对应的bytes文件即可
打包完成之后,生成的文件和路径