作者:小馨小慧 | 来源:互联网 | 2023-09-18 13:38
热更新:在不对应用程序重新打包的情况下,对引用程序进行功能的更新/修改
条件:在运行时编译(JIT)---Lua;服务器:Lua代码、更新的资源
流程:
1.游戏运行
2.检查服务器版本是否更新
3.通过对比服务器与本地文件的MD5值,判断文件是否更新,如果不一致,则删除本地文件,下载服务器文件进行使用(每一个不同的文件,都有一个属于自己的MD5值)
4.解压更新包--对assetbundle的加载
5.开始游戏
制作流程
1.将热更资源打AB包(预制体、依赖、Lua脚本)
2.打包的同时生成MD5值
3.上传到服务器
代码流程:
1、 GlobalGenerator.StarUp()
2、 SendMessageCommande执行StartUpCommand的Excute方法
3、 添加Manager组件(GameManager)
4、 GameManaer. OnResourceInited 初始化结束
5、 加载一次GameManager.lua脚本
6、 执行GameManager.lua中的LuaScriptPanel函数,得到两个panel的名称
7、 根据panel的名称加载view/xxxpanel.lua脚本,执行Awake函数
8、 执行GameManager.lua中的OnInitOk函数
DebugMode:
true :Lua脚本从工程中加载,资源文件从工程的StreamingAssets下加载
false:Lua脚本以及资源文件都从缓存目录中加载(c:/simpleframework/)