FAQ
HybridCLR支持哪些平台?
il2cpp支持的平台都支持
HybridCLR会增加多大的包体
以 2019版本为例,release模式下导出Android工程的libil2cpp.a文件, 原始版本12.69M,HybridCLR版本13.97M,也就是增加了大约1.3M。
为什么使用HybridCLR打出的包体增大很多
HybridCLR本身只会增加很少包体(1-2M)。包体增大很多是因为你错误地在link.xml保留了太多类,导致包体急剧增大。请自行参照Unity的裁剪规则优化。
HybridCLR是嵌了mono吗?
不是。HybridCLR给il2cpp补充了完全独立自主实现的完整的寄存器解释器。
HybridCLR写代码有什么限制吗?
几乎没有限制,参见未支持的特性
支持泛型类和泛型函数吗?
彻底完整的支持,无任何限制。
支持热更新MonoBehaviour吗?
完全支持。不仅能在代码中添加,也可以直接挂在热更新资源上。具体参见使用热更新MonoBehaviour
支持反射吗?
支持, 无任何限制。
对多线程支持如何?
完整支持。 支持Thread, Task, volatile, ThreadStatic, async。
支持多个Assembly吗?
支持。但是不会自动加载依赖dll。需要你手动按依赖顺序加载热更dll。
支持最多同时加载多少个dll?
最多可以同时加载3个最大64M的dll、16个最大16M的dll、64个最大4M的dll、255个最大1M的dll。也就是最多可以同时加载338个dll。
支持 .net standard 2.0 吗?
支持。但请注意,主工程打包用.net standard,而热更新dll打包必须用.net 4.x。详细解释请参照常见错误文档
支持Unity的DOTS框架吗?
支持。AOT部分的burst代码工作正常,但热更新部分的burst代码以解释方式执行。这个是显然的。