前言
搞游戏开发一定要跨平台的
Unity的跨平台方案
- Mono
- IL2CPP
Mono
Mono是使.net标准能在多平台上正常运行的一套工具。
Mono组成:C#编译器mcs,CLI虚拟机,核心类别程序库,Mono Runtime编译器
CIL: 公共中间语言(Common Intermediate Language)
Mono作用
Mono工作流
- C# 被 C#编译器mcs编译为IL(byte code)
- 通过Mono运行时中的编译器将IL编译成对应平台的原生码
- 原生码导入到内存执行
三种转译方式
即时编译(Just in time,JIT):程序运行过程中,将CIL的byte code转译为目标平台的原生码。
提前编译(Ahead of time,AOT):程序运行之前,将.exe或.dll文件中的CIL的byte code部分转译为目标平台的原生码并且存储,程序运行中仍有部分CIL的byte code需要JIT编译。
完全静态编译