对于unity3D跨平台的理解

由于unity只支持c#(从2018版本之后不再兼容JavaScript),所以跨平台是借助Mono实现,首先将代码编译成CIL(虽然是以.exe形式,但实质上是CIL),然后在不同平台上运行时,由Mono再次将CIL编译成目标平台的代码。说的普通点,mono就是.net的虚拟机。至于CIL到底是个什么,可以参考https://www.cnblogs.com/murongxiaopifu/p/4211964.html

最后总结起来U3D跨平台的原因:

  1. CIL是CLI标准定义的一种可读性较低的语言。
  2. 以.NET或mono等实现CLI标准的运行环境为目标的语言要先编译成CIL,之后CIL会被编译,并且以位元码的形式存在(源代码--->中间语言的过程)。
  3. 这种位元码运行在虚拟机中(.net mono的运行时)。
  4. 这种位元码可以被进一步编译成不同平台的原生代码(中间语言--->原生代码的过程)。
  5. CIL面向对象
  6. CIL基于堆栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值