Unity支持的C#版本

Unity 5.5的Mono编辑器支持c#4.0,可是unity5.5 运行框架是.net 2.0 的大部,加上.net 3.0和.net3.5的各一部分的集合,不支持.net4.0。c#

能够在unity5.5里写c#4.0的语言特性框架

可是引用的类和库,.net 2.0里面的随便用, .net3.0 和 .net3.5里面的新特性只能用一部分。.net 4.0以上的不能用。async

unity 5.6 的发布说明中没有说更新语言。那么unity 5.6 也是一样。编辑器


  • Unity 5.5.4自带的Mono也能够支持C# 6,在mcs.rsp文件中添加一行:-langversion:6便可。

Unity的 .NET Runtime版本是2.0,支持的 .NET Profile是3.5,默认的C#语言版本是4.0。.net

Unity 5.4以前,使用基于Mono 2.x版本的Unity特制版。这个版本至关于 微软 .net framework 3.5版本里的C#插件

所以,Unity的C#脚本,有不少的特性是没有实现的。调试

Unity 5.5以后,官方开始更新它们的Mono引擎了,像async/await的语法特性,也逐渐被支持了。code


Unity2017.1orm

试验性地支持新脚本运行时。This includes Mono 4.8 and IL2CPP with support for C# 6 and .NET 4.6ip


Unity 2018.1脚本运行时更新

Unity 2018.1如今加入了获得彻底支持的全新.NET运行时。随着.NET生态系统不断的发展,Unity将致力于保持与最新版.NET的功能兼容性。

在Unity 2017.1中,咱们发布了稳定的脚本运行时的第一个实验预览版。通过Unity 2017.2和Unity 2017.3的发布周期后,很多Unity用户已经使用这个实验性脚本运行时,并提供了宝贵的反馈。咱们也和来自微软Mono团队和Visual Studio团队优秀开发者紧密合做。咱们解决了各种问题,修正了多个错误,使得新版的脚本运行时变得愈来愈稳定。

随着Unity 2018.1的到来,咱们认为是时候推进它的普遍使用了。若是你尚未尝试使用它,如今就进行尝试吧!

为何使用

这个稳定的脚本运行时将为Unity带来了大量的新版C#和.NET的功能。这其中有:

C# 6

NET 4.7.1类库

支持在.NET Standard 2.0和1.x构建的程序集

IL2CPP中的托管代码调试功能(在Unity 2018.1中仍处于实验阶段,仅用于独立播放器,它将在以后的新版本中获得彻底支持)

.NET配置文件的选择

稳定的脚本运行时中有二个全新的.NET配置文件。对.NET类库而言,.NET配置文件能定义代码所能使用的底层API。你能够经过修改Player Settings中的“Api Compatibility Level”选项为播放器构建选择.NET配置文件。Unity支持的二个.NET配置文件以下:

.NET Standard 2.0

.NET 4.x.

.NET Standard 2.0 配置文件能匹配.NET 基金会发布的同名配置文件。对于Unity新项目来讲,这将是一个不错的选择。这个配置文件比.NET 4.x小,咱们推荐在一些有大小限制的平台上使用它,例如:移动端平台。除此以外,咱们还会确保这个版本在全部Unity支持的平台使用。

.NET 4.x 配置文件可以使用最新版的.NET 4 API。这包括全部在.NET Framework类库中可用的代码。它还支持全部的.NET Standard 2.0 配置文件,因此它能应用于面向.NET Standard 2.0构建的托管插件程序集。尽管它可以使用较大范围的API,但该API的某些部分不适用于全部平台。若是你的项目须要.NET Standard中没出现的功能,或是包含遗留代码的功能,这会是个不错的选择。

将来展望

现在新版的脚本运行时已获得Unity的彻底支持,咱们将在将来版本的Unity中对它进行维护。咱们正在给全部平台加入TLS 1.2支持,经过新版脚本运行时来对构建大小和构建时间进行改进。

在Unity 2018.1中,旧版的脚本运行时仍将做为新建项目时的默认设置。在Unity 2018.x发布周期中,咱们将会把新建项目的默认脚本运行时改成稳定的脚本运行时。尽管旧版脚本运行时彻底支持已有项目,咱们仍是会逐渐弃用旧版脚本运行时。

咱们会移除旧版脚本运行时,把稳定的脚本运行时做为惟一的选项。咱们建议用户开始向稳定的脚本运行时迁移。因为咱们的精力将转移到稳定的脚本运行时,因此对于旧版脚本运行时,咱们仅会进行错误修复工做。关于弃用过程和移除日程的额外说明将在不久后发布。


Unity 2018.2.0f2 Release Notes  发布日期:10 Jul 2018

Universal Windows Platform: Updated Roslyn C# compiler used for script compilation on UWP and Xbox One to version 2.7, which supports C# 7.2. (1004854)