本文主要是介绍Unity热更新之ILRuntime(一)(实现摆脱lua的c#热更新),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ILRuntime入门笔记
基础知识#
官方地址:https://github.com/Ourpalm/ILRuntime
官方文档:https://ourpalm.github.io/ILRuntime/
文档Markdown源文件:请阅读 **ILRuntime\docs\source\src\ **下的源文件 比这个目录下的源文件新 **ILRuntime\Documents\ **,经过对比两个目录有小部分差异。
官方Unity3D热更例子工程:https://github.com/Ourpalm/ILRuntimeU3D/
ILRuntime肯定可以做到IOS的热更。
本文中的名词解释:
域 : 应用程序的上下文,可以理解为使用热更之后,在游戏中存在两个域,一个是游戏主程序,另一个是热更域。
CLR: Unity脚本(C#)的公共运行库,公共运行环境
Assembly-CSharp.dll: Unity脚本(C#)的编译成的dll,非特殊目录下的脚本都放在这个dll下。安卓下可通过反射获取方法和变量。
dll: 指热更工程生成的dll,和Unity主工程是两个不同的dll。
ILRuntime基本原理#
ILRuntime热更流程#
ILRuntime主要限制#
ILRuntime启动调试#
- ILRuntime建议全局只创建一个AppDomain,在函数入口添加代码启动调试服务
appdomain.DebugService.StartDebugService(56000)
-
运行主工程(Unity工程)
-
在热更的VS工程中 点击 - 调试 - 附加到ILRuntime调试,注意使用一样的端口
- 如果使用VS2015的话需要
Visual Studio 2015 Update3
以上版本
线上项目和资料#
初音未来:梦幻歌姬 使用补丁方式:https://github.com/wuxiongbin/XIL
这篇关于Unity热更新之ILRuntime(一)(实现摆脱lua的c#热更新)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!