先把话挑明了说:
想搞清楚的不是“怎么用 ILRuntime 写热更”,
而是——它到底是靠什么原理,做到“DLL 热替换”的?
也就是:
- Unity 的 C# 已经编译好了、打包进 APP 里了
- 为啥还能在运行时加载一个 DLL
- 然后脚本逻辑说换就换,角色技能、数值、UI 流程都能重写
- 甚至手机上、热更新包下一发,游戏逻辑瞬间就升级
这事看着很魔法,其实背后就是:
把 C# 编译好的 IL 指令,当成“脚本字节码”自己解释执行,
再想办法跟 Unity 的主工程互相调用、互相访问。
这篇就打算用大白话 + 尽量靠谱的底层细节,
从头把这玩意儿“拆开给你看”。
一、ILRuntime 要解决的根本问题:Unity 为啥不能直接热更 C#?
先别急着看原理,先搞清楚:为什么要 ILRuntime?
1.1 Unity 默认的脚本“不能热更”的坑
Unity 的 C# 代码,在打包时大体会经历这样几步:
- 你写的
.cs脚本 - 编译成
.dll(一堆 IL 指令) - 在移动端(尤其是 iOS)被
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



