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 的兼容级别:
- .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。