Duas maneiras de o Unity lidar com o código C# na parte inferior

As duas maneiras pelas quais o Unity lida com o código C# na parte inferior são a máquina virtual Mono e IL2CPP.

Máquina virtual mono:

        A máquina virtual mono é o método de compilação e interpretação de script padrão usado pelo Unity. Ela compila o código C# em linguagem intermediária (IL) e, em seguida, converte-o em código de máquina local por meio de JIT (compilação just-in-time) ou AOT (pré-compilação ) e, por fim, em Executar no computador. Esse processo pode ser dividido nas seguintes etapas:

  • Escrevendo scripts C#: Os desenvolvedores usam a linguagem C# para escrever códigos lógicos de jogos.
  • Compilação automática do editor: o editor do Unity compila automaticamente os scripts C# em arquivos DLL e os adiciona ao projeto do jogo.
  • Interpretação e execução da máquina virtual Mono: Quando o jogo está rodando, a máquina virtual Mono interpreta e executa o código C# no arquivo DLL, convertendo-o em código da máquina local para execução.

 IL2CPP:

IL2CPP é outro método de interpretação e compilação de scripts do Unity, que compila o código C# em código C++ e gera arquivos executáveis. Comparado com o tempo de execução Mono, o IL2CPP pode fornecer maior desempenho e suporte de plataforma mais amplo. Esse processo pode ser dividido nas seguintes etapas:

  • Escrevendo scripts C#: Os desenvolvedores usam a linguagem C# para escrever códigos lógicos de jogos.
  • Compilação automática do editor: o editor do Unity compila automaticamente scripts C# em arquivos DLL de linguagem intermediária (IL) e os adiciona ao projeto do jogo.
  • Conversão IL2CPP para código C++: Quando o jogo for lançado, IL2CPP converterá o código IL para código C++, otimizará e reduzirá o tamanho.
  • Compile Executable: Crie um executável e execute-o.

 Por que usar a máquina virtual Mnno e por que desenvolver IL2CPP?

História do C#:

        Antes do aparecimento do C #, o Java dependia da máquina virtual Java + interpretação e execução do bytecode Java, para que o transplante e a escrita do código Java pudessem ser executados em várias plataformas. Ao mesmo tempo, o Java também possui um mecanismo de coleta de lixo, o que reduz bastante a dificuldade de desenvolvimento. Em resposta ao Java, a Microsoft lançou a plataforma .net.

        Depois que a Microsoft abriu o .NET, o Mono é um projeto .NET em sua plataforma, com suporte para Linux, Windows, Mac e Android, para que aplicativos/jogos desenvolvidos com base no Mono possam ser lançados em várias plataformas.

        Assim, o primeiro Unity escolheu o Mono como base de plataforma cruzada. Mono é construído com base na tecnologia .net, portanto, o desenvolvimento em mono pode suportar várias linguagens de desenvolvimento, como c#, J#, etc. Portanto, o Unity inicial pode oferecer suporte a C#, Boo, Js e outras linguagens de programação, todas baseadas na tecnologia mono.net. O Mono ajuda o Unity a resolver problemas de plataforma cruzada, linguagem de desenvolvimento e problemas de ferramentas de desenvolvimento.

        Mais tarde, a Unity descobriu que havia vários problemas com a máquina virtual Mono, então desenvolveu o IL2CPP:

  1. A questão dos direitos autorais do Mono.Net, quando o Unity usa o Mmh ono, é necessária a autorização do Mono;
  2. A máquina virtual Mono interpreta e executa bytecode .NET e sua eficiência operacional é relativamente baixa;
  3. Algumas plataformas, como IOS, não permitem máquinas virtuais .NET incorporadas;
  4. Se uma nova plataforma de computação aparecer e o Mono não for compatível, o Unity precisará reportar a máquina virtual Mono;

Acho que você gosta

Origin blog.csdn.net/HimaRe1/article/details/131098334
Recomendado
Clasificación