首页 文章

作为一个简单的Unity独立开发者,Mono和.NET仍然让我很困惑 . 谁是谁 ?谁做了什么?

提问于
浏览
2

我在Visual Studio中使用Unity,它很棒 . 但是,我对.NET,Mono和Unity之间的相互关系感到困惑 . 我没有该领域的专业经验,我需要一些澄清 . 这些陈述是对还是错?

  • .NET框架并非设计为跨平台 .

  • .NET frameWork目标是以统一的方式设计程序,它们必须全部在虚拟机中运行 .

  • Mono是.NET框架的开源版本,旨在实现跨平台 . 使用它构建的程序可以在有单声道虚拟机的任何地方运行 .

  • 使用mono框架构建的程序无法运行或与.NET虚拟机不完全兼容 .

  • Unity仅在编辑,构建和运行游戏时使用Mono frameWork .

  • 使用Unity构建的游戏具有嵌入式单声道框架和/或单声道虚拟机 .

  • 我不需要.Net框架来构建或运行Unity游戏 .

  • 我在Unity中编写的C#脚本是在构建时之前和之后由单声道虚拟机运行的 .
    所有Unity引擎公共代码库都是C包装的,实际上不是C#,因此它们在C端引擎上运行 .

  • 单声道框架工具和库使用单声道虚拟机在游戏中运行 .
    使用.NET框架构建的

  • DLL与Mono不完全兼容 .


那我的评价是多少?我哪里错了?
(请善待 . 英语不是我的第一语言) .

1 回答

  • 4

    .Net frameWork不是设计成交叉平台 .

    取决于你是否希望包括说Linux . 如果你问的是.NET最初的设计目标是Linux,那么,没有 . 但是,.NET Compact Framework允许.NET代码运行Xbox 360和Windows Phone .

    现在有.NET Core,一个免费的开源框架,专为跨平台而设计,特别是Windows,Mac和Linux .

    .Net frameWork目标是以统一的方式设计程序,它们必须全部运行并且是虚拟机 .

    是 . 正确的术语是执行引擎而不是VM,尽管它们都在同一个类中 . 不要将EE视为类似于vmWare的东西,其中CPU指令是模拟的.2686579_ . .NET与Java类似,是一种p代码形式,但.NET程序集与当前CPU JIT,以提高性能并在CPU上本机运行 . [1]

    Mono是.Net frameWork的开源版本,旨在实现交叉平台 . 使用它构建的程序可以在有单声道虚拟机的任何地方运行 .

    是 . .NET Core具有相同的声明 . [4]

    使用mono frameWork构建的程序无法运行,或与.Net虚拟机不完全兼容 .

    跨越它的Mono Framework的许多版本不是等效.NET Framework的1:1 .

    例如

    • Mono在.NET 3.0中不支持WPF [2]

    • Mono在.NET 3.0中不支持WWF [2]

    • Mono不支持.NET 4.0中的CodeContracts [2]

    Unity仅在编辑,构建和运行游戏时使用Mono frameWork .

    不正确 . Unity还使用Unity Script编写游戏 .

    但是,无论您的语言选择如何,运行时都会有很大差异 . 当通过Unity Web Player定位网络浏览器时,没有.NET / Mono EE . 该平台是Unity Web Player . 从这个意义上讲,目标平台上不需要.NET / Mono . [3]

    使用Unity构建的游戏嵌入了单声道框架和/或单声道虚拟机 .

    不正确,见上文

    我不需要.Net frameWork来构建或运行Unity游戏 .

    正确

    我在Unity中编写的C#脚本由构建时间之前和之后的单声道虚拟机运行 . 所有Unity引擎公共代码库都是c包装的,实际上不是C#,因此它们在c端引擎上运行 .

    不正确,您选择用于编写Unity游戏的语言与运行时是否存在.NET / Mono EE之间没有关联 .

    单帧工具和库在游戏中使用单声道虚拟机运行 .

    要看 .

    • 在运行Unity Editor的桌面上? - 是的

    • 部署在智能设备/浏览器上运行? - 不

    使用.Net frameWork构建的Dll与mono不完全兼容 .

    不正确 . Mono可能与同等的.NET Framework完全兼容,也可能不完全兼容 . [2]

    另见

    1 "Is the CLR a Virtual Machine?",MSDN

    2 Compatibility,单声道

    3 How does the Unity Web Player work?,Quora

    4.NET Core Framework - Go Cross-Platform with the .NET Framework,MSDN

相关问题