2023-06-19 Untiy进阶 C#知识补充2——C#版本与Unity的关系

一、Unity 与 C# 版本
Unity 版本 C# 版本
Unity 2021.2 C# 9
Unity 2020.3 C# 8
Unity 2019.4 C# 7.3
Unity 2017 C# 6
Unity 5.5 C# 4

​ 更多信息可以在 Unity 官网说明查看:Unity - Manual: C# compiler (unity3d.com)

​ 之所以不同 Unity 版本支持的 C# 版本不同,主要是不同 Unity 版本使用的 C# 编译器和脚本运行时版本不同。

​ 比如:Unity 2020.3 使用的脚本运行时版本等效于 .Net 4.6,编译器为 Roslyn(罗斯林编译器)。
​ 所以随着 Unity 的更新,一般会采用较新的编译器和运行时版本。
​ 新版本的脚本运行时将为 Unity 带来了大量的新版 C# 功能和 .NET 的功能,也就意味着它可以支持更高版本的 C#。

​ 我们可以根据不同 Unity 支持的对应 C# 版本,来判断我们是否可以使用 C# 各版本中的一些新功能用来编程。
​ 虽然我们没有掌握这些功能也能正常进行开发,但是往往新功能可以让我们写出更简单明了的代码,节约代码量。

二、Unity 的 .Net API 兼容级别

​ 在 PlayerSetting -> Other Setting -> Api Compatibility Level 中可以设置 .Net API 的兼容级别:

image-20230619134919644
  • .Net 4.x(特殊需求时):
    • 具备较为完整的 .Net API,甚至包含了一些无法跨平台的 API。
    • 主要针对 Windows 平台,并且会使用到 .Net Standard 2.0 中没有的功能时,会选择使用它。
  • .Net Standard 2.0(建议使用):
    • 是一个 .Net 标准 API 集合,相对 .Net 4.x 包含更少的内容,可以减小最终可执行文件大小。
    • 具有更好的跨平台支持。
    • .Net Standard 2.0 配置文件大小是.Net 4.x配置文件的一半

正常情况下,使用 .Net Standard 2.0