开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第26天,点击查看活动详情
ILRuntime介绍
ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新。
ILRuntime的优势
同市面上的其他热更方案相比,ILRuntime主要有以下优点:
-
无缝访问C#工程的现成代码,无需额外抽象脚本API
-
直接使用VS2015进行开发,ILRuntime的解译引擎支持.Net 4.6编译的DLL
-
执行效率是L#的10-20倍
-
选择性的CLR绑定使跨域调用更快速,绑定后跨域调用的性能能达到slua的2倍左右(从脚本调用GameObject之类的接口)
-
支持跨域继承
-
完整的泛型支持
-
拥有Visual Studio的调试插件,可以实现真机源码级调试。支持Visual Studio 2015 Update3 以及Visual Studio 2017和Visual Studio 2019
ILRuntime1.6版新增了Package Manager发布,使用Unity2018以上版本可以直接通过Package Manager安装,具体方法如下:
通过Unity的Window->Package Manager菜单,打开Package Manager,将上部标签页选项选择为All Packages,Advanced里勾上Show Preview Packages,等待Unity加载完包信息,应该就能在左侧列表中找到ILRuntime,点击安装即可
下载完后使用Unity打开,会有很多很多的报错,不用担心,我们会看到错误的原因都是一样的,我们根据报错的提示进行修复。
Assets\Scripts\Examples\11_ValueTypeBinding\QuaternionBinder.cs(12,21): error CS0227: Unsafe code may only appear if compiling with /unsafe. Enable "Allow 'unsafe' code" in Player Settings to fix this error.
最后一句,在Player Settings里面勾选Allow 'unsafe' code 可以修复这个错误。 这一步做完后,工程中就只剩下warning了,我们可以先忽略这些warning。
总的来说,ILRuntime使用时,除了Hotfix工程的配置稍微麻烦一些外,其他部分都不难,Demo做的很完善,基本是开箱即用。