ILRuntime热更新,使用C#,对于现有的各个平台都适用,由国人开发,并列出Unity官方计划中,正版正统之意已不用再说。
ILRuntime热更新主要逻辑在于项目显示内容和真实逻辑项目是分开的两个项目,对此不熟悉的可以看下XILRuntime官方文档。
文档地址:介绍 — ILRuntime (ourpalm.github.io)
对于IL的demo真的是一言难尽。
初始接触时候,按照官方文档全部配置出来后,dll也打出来了。但是运行的时候我发现,这个玩意还需要我手动去更新dll才能更新我更改的东西。
就这玩意,我手动更新,那还要你这个IL干什么。
幸得做项目时候,做过一些空包项目,各种文件都是从服务器上面下载的。
然后结合Assetbundle ,将dll文件全部放在服务器上,使用的时候从服务器上面更新,由此解决手动的问题。
所以还是全自动香啊!!!为自动化打call。
总结1、dll放置服务器,使用时候根据版本号去对应下载
问题2、实际Unity逻辑项目里没有Update函数,怎么办?
在Unity项目里,有调用Unity逻辑项目的函数,可以将Update传递进去。
由此类推,可以将Unity项目里面的一些对象啊,数据啊,都可以照搬传进去!!!!
此问题解决,Unity热更之ILRuntime不在话下,具体热更注意事项请关注官方文档!!!
END!!!!
疑问补充一:
Unity将核心脚本打成DLL,比如将某块核心系统打成DLL后,运行时调用DLL是否有性能影响?
没有影响,Unity默认就是会帮你将C#代码给生成DLL。如果打包到Android或者iOS,现在都会再将DLL用IL2CPP转成CPP代码。
现在Unity各平台基本都是用IL2CPP,使用IL2CPP开始构建时,Unity会自动执行以下步骤:
1. 将Unity Scripting API代码编译为常规 .NET DLL(托管程序集)。
2. 应用托管字节码剥离。此步骤可显著减小构建的游戏大小。
3. 将所有托管程序集转换为标准C++代码。
4. 使用本机平台编译器编译生成的C++代码和IL2CPP的运行时部分。
5. 将代码链接到可执行文件或DLL,具体取决于目标平台。
激情易退,热血难凉,点赞关注