zoukankan      html  css  js  c++  java
  • unity的运行

    unity程序的跨平台:

    mono:

      存在的原因:

            mono VM或mono CLR(Common Language Runtime)跨平台

      什么是mono:

            mono出现前,.Net没能实现跨平台;mono遵循了IL规范 ,mono自己实现了各语言到IL的编译器,以及各平台运行的CLR;

            

            

       转向il2cpp原因:

          1.Mono VM在各个平台移植,维护非常耗时,有时甚至不可能完成
            Mono的跨平台是通过Mono VM实现的,有几个平台,就要实现几个VM,像Unity这样支持多平台的引擎,Mono官方的VM肯定是不能满足需求的。所以针对不同的新平 台,Unity的项目组就要把VM给移植一遍,同时解决VM里面发现的bug。这非常耗时                                 耗 力。这些能移植的平台还好说,还有比如WebGL这样基于浏览 器的平台。要让WebGL支持Mono的VM几乎是不可能的。
          2.Mono版本授权受限
                大家有没有意识到Mono的版本已经更新到3.X了,但是在Unity中,C#的运行时版本一直停留在2.8,这也是Unity社区开发者抱怨的最多一 条:很多C#的新特性无法使用。这是因为Mono 授权受限,导致Unity无法升级Mono。如果换做是IL2CPP,                                IL2CPP VM这套完全自己开发的组件,就解决了这个问题。
          3.提高运行效率
            根据官方的实验数据,换成IL2CPP以后,程序的运行效率有了1.5-2.0倍的提升。

      

    il2cpp

    PC平台脚本编译后端只能选择mono

      iOS必须il2cpp

      Android可选则mono或il2cpp

    目前unity只有il2cpp模式的编译才支持64位系统,mono是不支持的。
    苹果在2016年1月就要求所有新上架游戏必须支持64位架构,所以苹果平台打包必须要选il2cpp。

  • 相关阅读:
    [Algo] 646. Store Number Of Nodes In Left Subtree
    [Algo] 611. Compress String II
    [Algo] 175. Decompress String II
    [Algo] 625. Longest subarray contains only 1s
    [Algo] 253. Longest Substring Without Repeating Characters
    [Algo] 292. String Abbreviation Matching
    [Algo] 649. String Replace (basic)
    [Algo] 397. Right Shift By N Characters
    flume 详细介绍
    Hive学习路线图【转】
  • 原文地址:https://www.cnblogs.com/alps/p/13611381.html
Copyright © 2011-2022 走看看