1.ILRunTime热更
编写c#代码,通过解释器生成IL代码,
编译c#代码,ILRuntime提供一个工具ILRuntimeCLRBinding,将c#代码编译成IL代码,生成XMl绑定文件
将编译好的IL代码打包到游戏中,游戏启动时会加载IL代码,并解释执行。
2.Lua 热更
1.将资源打包成AssetBundle,并将打包的资源文件的MD5保存到一个文件里,并定义此次更新的版本号xx.xx.xxxo
2.将资源提交到资源服务器
3.客户端启动,从资源服务器取得版本号ver1,然后再读取本地资源的版本号ver2,比较ver1与ver2,如果ver1与ver2相等,直接进入游戏,否则从服务器下载MD5文件列表,然后读取本地的MD5文件列表,然后对比两个文件,找到MD5改变的文件。
3下载MD5文件改变的资源
4更新本地版本配置文件
5.进入游戏
unity热更有很多方案,各种lua热更,ILRuntime等,这里介绍的是YooAsset+HybridCLR的热更方案,HybridCLR负责更新c#代码,YooAsset负责更新资源。
流程就是将c#代码打成dll,然后把dll当做一个资源,用YooAsset热更dll资源之后,动态加载dll程序集,然后执行新逻辑
HybridCLR相比其他代码热更方案而言,纯c#方便开发,更加符合开发者习惯,更新的代码执行效率也更好
YooAsset热更资源,主要是省去了自己亲自管理ab包,ab包的管理挺繁琐,AssetBundle坑也很多,而且YooAsset有下载器,不用自己手写网络下载,也不用自己记录资源,比对资源列表来判定需要热更什么资源。