1 C#热更新预备知识
mono.cecil注入
使用Mono.Cecil实现IL代码注入
注入之后修改dll,新增mdb文件:

注意,待了解参数注释打开会报错:

InjectFix
安装
你试试用mcs可以不,你把第二行改为
@set GMCS="%UNITY_HOME%\Editor\Data\MonoBleedingEdge\bin\mcs.bat"
2 使用
2.1原理
2.2特征和支持
-
修改函数
-
新增类(Interpret)
-
新增函数 (Interpret)
-
不支持泛型函数
-
不支持新增字段新增属性
2.3规则和约定
- 1 Inject过后的工程,不能拿来Fix操作去得到补丁。(报错会提示reimport)
- 2 C#编译后(修改代码),需要重新注入Inject
- 3 [Interpret]标记的新增类,补丁里有了,原版本的C#工程就不能有重复。([patch]无所谓,新增函数无所谓)
其他
iOS禁止APP创建可写可执行的内存页,而这是JIT必须的
- 执行文件大小限制
执行文件大小是指执行文件的__TEXT部分
当IOS最低版本小于7.0,32位+64位最多为80MB;
当IOS大于等于7.0,每个分区是60MB(并不是指32位+64位最多为120MB,当32位分区占用50MB,64位分区占用61MB,总111MB也不行,因为64位分区超出了);
当IOS大于等于9.0,总限制400MB;
游戏设计-InjectFix-private
原文:https://www.cnblogs.com/Jaysonhome/p/12996853.html