首页 > 其他分享 >Unity框架与.NET, Mono框架的关系

Unity框架与.NET, Mono框架的关系

时间:2023-05-30 22:12:22浏览次数:45  
标签:框架 C# Mono 编译成 编译 Unity NET

什么是C# C#是一种面向对象的编程语言。
什么是.NET .NET是一个开发框架,它遵循并采用CIL(Common Intermediate Language)和CLR(Common Language Runtime)两种约定, CIL标准为一种编译标准:将不同编程语言(C#, JS, VB等)使用各自的编译器,按照统一的标准编译成语义一致的CIL中间码, 这样虽然代码使用的语言不同,但编译出的产物是一样的。 CLR标准为一种执行标准:不同的操作系统可以根据CLR这一执行标准开发出自己平台的中间码执行器,这样CIL这个标准中间产物就可以在不同的平台执行了。其中Mono框架就扮演了这样一个重要的角色,实现了各个平台的CLR执行器。

 

什么是Mono Mono是一个框架,它是.NET这个开源框架的子集,它建立在.NET框架基础上,在使用.NET基础能力的基础上,自己做了多各个操作系统的CLR实现来实现跨平台。同时也重写了一些.NET框架中的基本功能。
Unity是什么 Unity是一个游戏开发框架,框架的各种库是使用C#来实现。 Unity 引擎的外层是用C#实现,内部则是对 C/C++ 做直接调用。它的内部是用原生 C/C++ 构建的。
Unity与Mono之间的关系 使用Unity做游戏脚本开发,脚本编写好后,使用Mono将C#代码编译成CIL标准中间码,再使用Mono的跨平台能力将编写的CIL运行到各个目标平台上,比如运行到iOS,安卓手机上。
如何看待.NET Framework,Mono和.NET Core 随着微软对.NET框架的开源,现在在.NET的实现上有了三个.NET Framework,Mono和.NET Core。 .NET Core是一个模块化的开发栈,它提供了框架的基础能力,包含跨平台,它是未来的所有.NET平台的基础。 .NET Framework可以看做是.NET Core在Windows上的一个发行版,Mono可以看做是.NET Core的一个跨平台发行版。 随着.NET Core Framework的开发完成,.NET Framework与Mono将基于.NET Core重新构建。
.NET框架 .NET是一个框架,它具有跨语言,跨平台的特性。 .NET通过将各语言先编译成中间语言(IL),然后再执行时用即时(Just In Time)编译器将之编译成本地平台代码来实现异构平台下对象的互操作,.NET通过公共语言运行库CR(Common Language Runtime)来实现资源对象,类型的安全。 .NET有很多种语言组成,比如C#、 VB.NET、J#、JS、 C++,它们的编译产物都是运行在.NET FrameWork Run Time之上的。其中,C#是主流。
C#源码编译流程 C#源代码在.NET程序的编译中,代码编译会生成exe公共中间语言文件。 C#源代码Unity和这个很相似,代码会被编译成dll公共中间语言文件。 它的编译过程如下: 源代码.cs - CLS编译(公共语言标准)- 通用中间语言(exe, Unity中编译成dll格式)-CLR编译- 机器码 .NET框架可以支持多种语言,那么在一个项目中同时存在这么多语言,它们如何通信呢? 1.首先将它们各自编译成通用中间语言 2.再使用通用中间语言进行互相调用。 这样做的目的:跨语言 3.点击exe, 系统会调用CLR编译(目的是优化,跨平台,一个exe可以编译成多个window平台,甚至编译成Linux系统)进行即时编译,生成01二进制 4.unity的跨平台是重写了CLR(公共语言运行库)编译,可以编译成java,android(需要编译成哪种平台,就拿哪种平台的CLR,这样对应的系统就可以识别,来实现跨平台)多种平台的01机器码

参考文章 https://blog.51cto.com/u_16099186/6280958 https://zhuanlan.zhihu.com/p/266037775 https://www.cnblogs.com/shanyou/p/4295163.html    

标签:框架,C#,Mono,编译成,编译,Unity,NET
From: https://www.cnblogs.com/zhou--fei/p/17441420.html

相关文章

  • Unity_Photon
    PhotonPhoton搭建(2条消息)【Unity3D】Photon环境搭建_photon框架_little_fat_sheep的博客-CSDN博客连接云服务器主要代码:PhotonNetwork.ConnectUsingSettings();usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingPhoton.Pun;using......
  • 《可伸缩服务架构-框架与中间件》-00-随笔计划
    初步计划大约花费9*5天时间精细阅读本书。目标输出:每个篇章输出一篇随笔,分析架构和逻辑内容。第一章:分布式发号器(5月31号--6月4号)第二章:消息队列(6月5号--6月9号)第三章:数据库分库分表(6月10号--6月14号)第四章:缓存(6月15号--6月19号)第五章:ES(6月20号--6月24号)第六章:定制任务(6月2......
  • 《可伸缩服务架构-框架与中间件》-01-分布式发号器
    本文主要是设计一款永不重复的高性能分布式发号器。源码地址——码云:https://gitee.com/robertleepeak/vesta-id-generatorVesta是一款通用的ID产生器,互联网俗称统一发号器,它具有全局唯一、粗略有序、可反解和可制造等特性,它支持三种发布模式:嵌入发布模式、中心服务器发布模式、......
  • Unity中根据平面的多边形点的数据,生成简单的立体网格
    todo 最近需要一个功能,就是根据给定的多边形顶点(按照顺时针或者逆时针这样的顺序),然后生成一个具有高度,投影与多边形一样的一个Mesh。效果如下,比如给定以下的一些顶点的位置         https://blog.csdn.net/lxbhahaha/article/details/111687476......
  • Unity发布IOS发布Android版本出现屏幕问题 UGUI半屏被压缩 另一半黑屏
    项目场景:用Unity做的app发布的ios和Android版本,ui做屏幕自适应,来适配多机型,unity版本是2019.4,用的UGUI。问题描述:极个别机型有个偶发的问题,就是在app息屏,再开屏的时候,会出现半边屏幕被压缩,半边屏幕黑屏的问题,但是ui交互的位置还是正常的,bug效果图如下:跟这张图一样的<hrstyle="bor......
  • 微软自动化框架playwright-录制脚本(比较繁琐)
    之前我们已经配置好了playwright的运行环境,也下载好了对应的浏览器和工具。现在就可以使用playwright了。  各种自动化框架都会有脚本录制功能,playwright也不例外。很早之前的badboy工具,发展到每种浏览器都有对应的录制插件。今天我们就来看下微软自动化框架playwright是如何......
  • 3.4. Java集合框架(List、Set、Map等)
    Java集合框架是Java提供的一套用于存储和操作数据的接口和类。它包括以下几个主要部分:接口:集合框架定义了一系列接口,如Collection、List、Set、Map等。实现类:集合框架提供了一些实现这些接口的类,如ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap等。......
  • api框架和UI框架
    1.先建一个统一管理pytest插件的requirements.txt文件.然后安装这些第三方库(注意重复安装)2.再建一个项目根目录的pytest.ini文件配置各种参数和环境的各种基础路径base_url,便于主函数或者命令行在根目录下能找到用例并执行(注意编码格式)3.创建装饰器又叫全局性夹具conftest.py用......
  • java开发学习框架
    Java基础1.1.Java简介与安装1.2.Java基本语法1.3.数据类型与变量1.4.运算符与表达式1.5.流程控制(分支与循环)1.6.数组面向对象编程2.1.类与对象2.2.继承与多态2.3.接口与抽象类2.4.封装与访问控制2.5.重载与覆盖2.6.Java内存管理与垃圾回收Java常......
  • Python异步编程之web框架 异步vs同步 文件IO任务压测对比
    测试基本信息主题:比较异步框架和同步框架在文件IO操作的性能差异python版本:python3.8压测工具:locustweb框架:同步:flask异步:aiohttp、starlette异步文件模块:aiofiles、anyio.Path请求并发量:模拟10个用户服务器配置:Intel(R)i7-12700F客户端配置:Intel(R)i7-87003......