HybridCLR
HybridCLR热更底层逻辑是对Unity IL2CPP运行机制的扩展,打破IL2CPP AOT的限制或缺陷;核心思想是修改IL2CPP的运行时,使得Unity在AOT编译后的代码基础上仍然可以通过JIT的方式加载和执行IL代码,相当于是将原本IL2CCP运行机制(AOT Runtime)扩展为脚本混合更新(AOT+JIT Runtime)。
HybridCLR 的扩展:HybridCLR 通过对 Unity 编译和运行时进行扩展,打破了这一限制。它允许某些方法以 IL 代码形式保留,并在运行时动态加载并解释执行这些代码,而无需通过 IL2CPP 将其编译为原生 C++。这种扩展使得开发者在 IL2CPP 环境中也能实现热更新。
概念:
IL2CPP:Unity 的 IL2CPP(Intermediate Language to C++)机制将 C# 的 IL 代码静态地编译为 C++,并进一步编译成机器代码。这种预先编译的方式在性能和可移植性上有很大优势,但缺乏对动态代码的支持,尤其是 JIT(Just-In-Time Compilation,动态编译),这导致了 IL2CPP 环境下默认无法进行 C# 脚本的热更新。
AOT(Ahead-of-Time Compilation):运行前编译,可以避免在运行时的编译性能消耗和内存消耗,提高程序启动及运行速度。
待续
浙公网安备 33010602011771号