6.CSharp版本和Unity的关系
6.1 知识点
各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
更多信息可以在Untiy官网说明查看 Unity官方文档
为什么不同Unity版本支持的C#版本不同?
之所以不同Unity版本支持的C#版本不同主要是因为不同Unity版本使用的 C#编译器和脚本运行时版本不同。比如:Unity2020.3 使用的脚本运行时版本等效于.Net 4.6,编译器为Roslyn(罗斯林编译器)。所以随着Unity的更新,它一般会采用较新的 编译器和运行时版本。新版本的脚本运行时将为Unity带来了大量的新版C#功能和.NET的功能,也就意味着它可以支持更高版本的C#。
不同版本的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。
总结
由于新版本Unity会同时更新Scripting Runtime(脚本运行时)和 C#编译器的版本,所以随着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
并且,对于.Net API兼容级别的认识是正常情况下我们都会使用.Net Standard。
6.2 知识点代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson06_CSharp版本和Unity的关系 : MonoBehaviour
{
void Start()
{
#region 知识点一 各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
//更多信息可以在Untiy官网说明查看
//https://docs.unity3d.com/2020.3/Documentation/Manual/CSharpCompiler.html
#endregion
#region 知识点二 为什么不同Unity版本支持的C#版本不同?
//之所以不同Unity版本支持的C#版本不同
//主要是不同Unity版本 使用的 C#编译器和脚本运行时版本不同
//比如:Unity2020.3 使用的脚本运行时版本等效于.Net 4.6,编译器为Roslyn(罗斯林编译器)
//所以随着Unity的更新,它一般会采用较新的 编译器和运行时版本
//新版本的脚本运行时将为Unity带来了大量的新版C#功能和.NET的功能
//也就意味着它可以支持更高版本的C#
#endregion
#region 知识点三 不同版本的C#对于我们来说有什么意义?
//我们可以根据不同Unity支持的对应C#版本
//来判断我们是否可以使用C#各版本中的一些新功能用来编程
//虽然即使我们没有掌握这些功能也能正常进行开发
//但是往往新功能可以让我们写出更简单明了的代码
//可以节约代码量
#endregion
#region 知识点四 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
#endregion
#region 总结
//由于新版本Unity会同时更新
//Scripting Runtime(脚本运行时)和 C#编译器的版本
//所以随着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
//并且,对于.Net API兼容级别的认识是
//正常情况下 我们都会使用.Net Standard
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com