使用ILRuntime的原因:
参考:https://www.cnblogs.com/decode1234/p/10270911.html
c# 编译成 IL,可以由Mono VM 解释执行 IL,但是Mono实现跨平台,需要针对每个平台进行移植,非常耗时耗力;并且Mono的版权所限,Unity中Mono的版本不是最新的;最重要的是IOS不支持JIT,无法使用Mono,所以使用IL2CPP。
IL2CPP的好处,将IL翻译成C++,由各平台现成的c++编译器编译执行,IL2CPP VM只需要做GC管理。
IL2CPP 翻译C++静态语言,只能AOT编译,不能JIT,不能在运行时编译代码,所以只能将热更代码运行前编译成dll,因此热更的代码不能挂在物体上。
总结
参考:https://ourpalm.github.io/ILRuntime/public/v1/guide/index.html
委托
热更部分调用热更外部的委托,要注册委托
注册委托适配
根据委托签名(参数、返回值)注册,
无返回参数:RegisterMethodDelegate<参数...>
有返回参数&#x