版本:Unity 6 (6000.0)
语言:English
.NET 配置文件支持
第三方 .NET 库

.NET 系统库

Unity 支持多种平台,并且可能根据平台使用不同的脚本后端。在某些情况下,.NET 系统库需要特定于平台的实现才能正常工作。虽然 Unity 尽最大努力支持尽可能多的 .NET 生态系统,但 Unity 明确不支持 .NET 系统库的某些部分。

Unity 对于跨 Unity 版本的 .NET 系统库不提供性能或分配保证。通常,Unity 不会修复 .NET 系统库中的任何性能回归。

Unity 不支持System.Drawing 库,并且不能保证在所有平台上都能正常工作。

Mono 脚本后端为 Unity 中的脚本编写提供支持的框架。根据目标平台,Unity 支持三种不同的脚本后端:Mono、.NET 和 IL2CPP。但是,通用 Windows 平台仅支持两种:.NET 和 IL2CPP。更多信息
请参见词汇表
使用的 JIT 编译允许您在应用程序运行时发出动态 C#/.NET 中间语言 (IL) 代码生成。AOT 编译提前 (AOT) 编译是除 iOS 外的所有平台使用的优化方法,用于优化构建播放器的尺寸。更多信息
请参见词汇表
IL2CPPUnity 开发的脚本后端,在为某些平台构建项目时,您可以将其用作 Mono 的替代方案。更多信息
请参见词汇表
脚本后端使用的 不支持动态代码生成。

在使用第三方库时,这一点非常重要,因为它们可能对即时 (JIT) 和提前 (AOT) 具有不同的代码路径,或者它们可能使用依赖于动态生成代码的代码路径。有关如何在运行时生成代码的更多信息,请参阅 Microsoft 的ModuleBuilder 文档。

尽管 Unity 支持多个 .NET API 配置文件,但出于以下原因,您应该对所有新项目使用 .NET Standard API 兼容性级别

  • .NET Standard 的 API 表面较小,因此实现也较小。这会减小最终可执行文件的大小。
  • .NET Standard 具有更好的跨平台支持,因此您的代码更有可能在所有平台上都能正常工作。
  • 所有 .NET 运行时都支持 .NET Standard,因此当您使用 .NET Standard 时,您的代码可以在更多 VM/运行时环境(例如 .NET Framework、.NET Core、Xamarin、Unity)中工作。
  • .NET Standard 将更多错误转移到编译时。.NET Framework 中的一些 API 在编译时可用,但在某些平台上具有在运行时引发异常的实现。

例如,如果您需要为旧版现有应用程序提供支持,则其他配置文件可能很有用。要更改API 兼容性级别设置,请转到编辑>项目设置>播放器。在其他设置标题下,将API 兼容性级别设置为所需的设置。

其他资源

.NET 配置文件支持
第三方 .NET 库