关于Mono和ILmCPP一直没弄懂
unity3d中ScriptingBackend选择mono和il2cpp的区别
一篇总结得很不错的文章:【Unity游戏开发】Mono和IL2CPP的区别 - 知乎
IL2CPP(C++ 的中间语言)是 Unity 开发的脚本后端,您可以在为各种平台构建项目时将其用作 Mono 的替代方案。IL2CPP(一种提前 (AOT) 编译器)支持以与 Mono 脚本后端相同的方式调试托管代码。
使用 IL2CPP 构建项目时,Unity 将 IL 代码从脚本和程序集转换为 C++,然后为您选择的平台创建本机二进制文件(例如.exe、apk、.xap)。IL2CPP 的一些用途包括提高 Unity 项目的性能、安全性和平台兼容性。
每个脚本后端都有优点和缺点,这些优点和缺点应该会影响您决定哪个是适合您的情况的正确选择:
IL2CPP:
- 与 Mono 相比,代码生成有了很大改进。
- 从上到下调试 C++ 中的脚本代码是可能的。
- 您可以启用引擎代码剥离以减少代码大小。
- 构建时间比 Mono 长。
- 仅支持 Ahead of Time (AOT) 编译。
单核细胞增多症:
- 比 IL2CPP 更快的构建时间。
- 由于即时编译 (JIT),支持更多托管库。
- 支持运行时代码执行。
- 必须交付托管程序集(mono 或 .net 生成的 .dll 文件)。
官方文档:Memory Management in Unity - Unity Learn
总结:
每个脚本后端都有优点和缺点,这些优点和缺点应该会影响您决定哪个是适合您的情况的正确选择:
-
与 Mono 相比,代码生成有了很大改进。
-
从上到下调试 C++ 中的脚本代码是可能的。
-
-
构建时间比 Mono 长。
-
Mono
提示:您应该使用 IL2CPP 来开发和发布您的项目。如果使用 IL2CPP 导致迭代时间太慢,请在开发期间暂时切换到 Mono Scripting Backend 以提高迭代速度。