Unity 跨平台的发展历程
Unity设计的初衷是建立一个简单易用且跨平台的游戏开发引擎。而当时市面上最好的开发平台就是微软的.NET Framework,由于**.NET只能应用于Windows体系**,所以Unity又借助了MONO来实现了跨平台。Unity的底层是C++,但核心却是.NET Framework,在Unity中是可以使用.NET提供的相关工具的。
.NET Framework:.NET是微软开发的**跨语言(注意不是跨平台)**开发平台,支持二三十种开发语言,用于构建和运行应用程序。这些应用程序只能在Windows体系内使用。
C#(CSharp):微软专门为.NET推出的高级编程语言。从语言技术、风格、严谨性等特点上来说,C#可称为诸多编程语言中最优秀的一款,甚至由它引发出计算机语言界中的多种新规范和新特征。C#首先发布于2002年,当时公认为C#是.NET大家庭中前景最好的语言,所以Unity选用了C#作为主要开发语言(实际上Unity还支持Unity Script和Boo语言)。
MONO:Novell公司支持在其他操作系统下开发.NET程序的框架。Unity借助MONO实现跨平台,核心是.NET Framework框架。

.NET Framework的作用是跨语言开发,MONO的作用的跨平台运行,Unity通过MONO实现了跨平台的发布。实际上Unity只是在早期使用了MONO作为一种工具,而并不是通常所理解的构建于MONO之上。因为基于MONO的层并没有处理很多重要的游戏任务,比如音频、渲染、物理以及时间的跟踪。Unity出于速度的考虑构建了本地C++后端,允许他的用户将MONO作为脚本编写界面,控制该游戏引擎。因此,MONO只是底层Unity引擎的一个组成部分。
具体实现方式
早期的Unity跨平台是基于MONO运行时的,又通过CLS实现了跨语言。MONO是一个开源工程,其中包含C#编译器,CLR运行时,以及一组类库。该工程常见了一系列符合ECMA标准的.NET工具,MONO使得开发者可以使用任何平台开发C#,也可以让C#在不同平台运行。其基本思路是将各个版本的语言统一编译成CIL语言,在不同平台运行时使用CLR进行解释。有点类似于Java的jdk和jvm。
总结起来就是1种通用语法、1套固定语句、1种编译器、1套运行时。

4316

被折叠的 条评论
为什么被折叠?



