|
目前这个星球上有常见的两个C#引擎,
- 一个是Xamarin的Mono(开源的)
- 一个是微软的 .net framework。
你所说的标准C#,应该是指微软的 .net framework里的吧,它目前暂时只能Windows运行(未来不是)。
Unity中,则使用的是开源的Mono引擎,是跨平台的,Windows、Linux都行。
除了不同的引擎,C#还有版本之分。
比如说,Java有Java 6, Java 7, Java 8;C#也有分C# 5.0 , C# 6.0等不同版本,每个版本都有一些新的语法特性。
Mono引擎的开发,理论上是严格的向微软的C#兼容的。语言层面上应用起来,没有多大的区别。
所以,要讨论语法区别的细节,还要知道,哪个Mono的版本,跟哪个 .net framework C#的版本做比较....
Unity 5.4之前,使用基于Mono 2.x版本的Unity特制版。这个版本相当于 微软 .net framework 3.5版本里的C#.......
因此,Unity的C#脚本,有很多的特性是没有实现的。
好消息时,Unity 5.5之后,官方开始更新它们的Mono引擎了,像async/await的语法特性,也逐渐被支持了。
题外话,微软正在实施开源战略,.net framework会在未来更开放,其核心部分分出了 .net core库,而 .net core 可能会在未来也成为Mono的底层一部分。
如果你想更深入了解,可以上StackOverflow上看更深入的技术差异。比如这些:
What‘s the difference between .NET Core, .NET Framework, and Xamarin? |
|