Unity中Mono所搭建的脚本核心基础

Mono基本介绍

Mono组件

C#编译器——MCS:MCS的作用就是将C#编译为CIL(通用中间语言)

Mono运行时(mono Runtime):运行时中的编译器将CIL的Byte Code在转译为原生码,同时提供即时编译(JIT),提前编译(AOT),完全静态编译(Full-AOT)三种转译方式

基础类库:提供广泛的基础类

Mono类库:提供额外的有用功能,尤其是构建Linux方面

Mono如何提供脚本功能

总所周知Unity是由C++写成的,将Mono运行时嵌入到由C++写成的应用后,该应用便会获取一个完整的虚拟机环境 。Mono的嵌入接口就会将Mono运行时暴露给C++代码,哪些C/C++代码被称为非托管代码,经CIL编译器生成的CIL代码被称为托管代码。

Mono运行时嵌入应用可分为3个步骤:

  • 编译C++程序和链接Mono运行时
  • 初始化Mono运行时
  • C/C++ 和C#/CIL的交互

假设我们要实现Unity中的组件系统,在C#中定义Component类,C#端中主要目的是为游戏脚本提供相应接口,而不是具体逻辑的实现。我们在C/C++中实现具体逻辑,再以该代码中创建的实例为样本,调用Mono提供的方法在托管环境中创建相同的类型实例。

我们可以看出,虽然引擎底层是由C/C++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值