6

IL2CPP是 Unity 开发的脚本后端,在为某些平台构建项目时,您可以将其用作 Mono 的替代方案。注意 - IL2CPP 仅在为以下平台构建时可用:

  • Android AppleTV、iOS*、Nintendo 3DS、Nintendo Switch、Playstation 4 Playstation Vita、WebGL*、Windows Store、Xbox One

我有一个项目(统一 5.2)已切换为 Android 部署。我试图将我的脚本从 Mono2x 切换到 IL2CPP,它向我展示了

Andriod 上的 IL2CPP 是实验性的,不受支持

所以,我的简单问题是,如果仍然不支持,那么为什么包含该选项,IL2CPP 和 Mono2x 之间的根本区别是什么。为什么我切换到 IL2CPP 脚本后端?

我还检查了 unity 5.5.2 Windows 平台部署中没有 IL2CPP 选项。

4

1 回答 1

7

信息基于 Unity 版本 2018.2:

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 文件)。

IMP 点数:

  • Android 播放器设置中的默认目标架构是带有 IL2CPP 和 Mono Scripting Backend 的 armv7 和 x86。

  • UWP 或 iOS 11 及更高版本不支持 Mono。iOS 播放器设置中的默认架构是带有 IL2CPP 脚本后端的 armv7 和 arm64。

  • UWP 版本仅支持 IL2CPP 和 .NET,.NET 脚本后端(已弃用)使用 Microsoft 的 .NET 来支持脚本。

于 2018-09-10T13:48:38.757 回答