首先需要了解的是,Unity3D的C#基础脚本模块是通过Mono来实现的。
什么是Mono?
参考下百度百科:Mono是一个由Novell公司(由Xamarin发起)主持的项目,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的Runtime,和一组类库,并实现了 ADO NET和ASP NET。
它基于CIL和C#的ECMA标准,提供了了微软.Net FrameWork的另一种实现。
Mono主要有以下部分组成:
C#编译器——mcs。(最新的Mono版本已经可以支持C#5.0,但Unity3D的Mono版本仍然停留在2.0+阶段(支持c#3.0),所以C#的一些新功能无法在unity中使用)
运行时:即时编译器JIT(后文会介绍)。以及GC,类