官方文档
参照视频
HybridCLR介绍
HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案
HybridCLR与ToLua/XLua、ILRuntime有什么不同
什么是游戏热更新:有热更的游戏更新流程
游戏热更新的种类
资源热更新:主要通过AssetBundle来实现,在Unity编辑器内为游戏中所用到的资源指定AB包的名称和后缀,然后进行打包并上传服务器,待游戏运行时动态加载服务器上的AB资源包。
代码热更新:
1.代码是一种文件,也是一种资源
2.Unity脚本资源以DLL文件的形式存在于磁盘上
3.Unity脚本代码打包以后放在磁盘什么位置?叫什么文件名
4.如何更新Unity脚本代码?
如何打包?
在打包设置面板“Player Setting”里,需要设置相应的值:
1.ScriptingBackend 选择编译方式“IL2CPP”,IL2CPP性能比Mono好
2.Target Architecttures里不勾选“ARM64”
两种方式打包以后的项目目录结构(IL2CPP方式、安卓)
- = libmono.so :存储unity底层的一个库
- Assembly-CSharp.dll:我们写的程序和脚本会形成这个dll
- libilcpp.so:把Assembly-CSharp相关的程序和c#代码会形成一个c++的动态库,全部被链接到libilcpp.so
IL2CPP方式脚本编译流程
- IL2CPP做的改变由下图红色部分标明
- 在得到中间语言IL后,使用IL2CPP将他们重新变回C++代码,然后再由各个平台的C++编译器直接编译成能执行的原生汇编代d代码