Descubra algumas das principais melhorias e novos recursos para programadores no Unity 2020.2. Para obter mais detalhes, confira as notas de lançamento.
Melhore os tempos de compilação com compilação determinística
Enquanto a complexidade dos projetos aumenta, novas alterações de códigos podem demorar muito para serem compiladas e pesam sobre a produtividade da sua equipe. O Unity 2020.2 oferece uma opção de compilação “determinística” ao compilar scripts C#. Esta opção permite que você evite recompilação desnecessária de referências de definição da montagem (.asmdef) se os metadados públicos para a montagem não mudarem ao compilar scripts para o Editor. Isso é particularmente útil para reduzir o tempo de iteração quando você está fazendo alterações nas montagens que têm muitas referências diretas e/ou indiretas.
Suporte para C# 8
O Unity 2020.2 suporta todos os recursos e melhorias mais recentes de C# 8, exceto métodos de interface padrão. Isso inclui tipos de referência que podem ser anulados, o que possibilita ao compilador mostrar um alerta sempre que você tentar atribuir nulidade a uma variável de tipo de referência. Alternar a expressão com correspondência de padrão oferece a você uma maneira mais simplificada de escrever código condicional.
Para ter uma visão geral completa de tudo que há de novo no C# 8, verifique a documentação da Microsoft.
Namespace raiz disponível nas configurações de definição da montagem
Os namespaces em C# oferecem uma maneira eficiente de organizar seu código e evitar colisões de nomenclatura de classe com outros pacotes e bibliotecas. O namespace raiz agora está disponível como um novo campo no inspetor asmdef e é usado para adicionar automaticamente um namespace ao criar um novo script no Unity, no Visual Studio e Rider.
Lembre-se de atualizar os pacotes do Visual Studio e do Rider para a versão mais recente se você planeja usar esta funcionalidade.

Compilação de build mais rápida
O Unity 2020.2 vem com melhorias significativas para o tempo de compilação de build. Se você fizer alterações que não envolvam código, por exemplo, materiais, shaders ou prefabs, a conversão do IL2CPP de montagens .NET para C++ agora serão totalmente ignoradas aos criar um novo jogador.
No Unity 2020.2, a conversão IL2CPP aproveita a vantagem dos processadores multinúcleo modernos ao ir de single para multithread, diminuindo drasticamente o tempo geral de build de jogador IL2CPP conforme demonstrado nos dados do projeto de teste acima.
Time.deltaTime consistente
O Unity 2020.2 ajusta os valores de Time.deltaTime que levam a movimentos "gaguejantes" de objetos durante a jogabilidade. A interface do TimeManager foi refatorada de modo que agora os cálculos de tempo de quadro estão mais estáveis, fornecendo um movimento de objeto muito mais suave quando o jogo está em execução a uma taxa de quadros estável. O Unity 2020.2 suporta essas melhorias de estabilidade de tempo no iOS, macOS, PS4, Switch, tvOS, UWP, Windows e Xbox One. Melhorias no Android, Windows/Linux no Vulkan e XR virão mais tarde. Confira a publicação do blog para obter mais detalhes.

Melhorias no desempenho
O Unity 2020.2 apresenta diversas otimizações significativas, incluindo Prefabs aninhados, resultando em classificações e buscas drasticamente mais rápidas. As pesquisas na função de registro dos importadores com script do Editor foram testadas e provaram ser até 800 vezes mais rápidas. Por fim, a equipe de otimização também refatorou o Camera.main, reduzindo o tempo que leva para consultá-lo a centenas de milissegundos em alguns projetos.
Corrotinas do Editor e fluxos de trabalho mais rápidos com Entrada no Modo Play configurável
Não sendo mais um recurso experimental, a Entrada no Modo Play configurável permite que você desative uma ou ambas as ações “Domain Reload” (recarregar domínio) e “Scene Reload” (recarregar cena) para acelerar a entrada no Modo Play. Com Corrotinas do Editor agora fora da visualização, você pode iniciar a execução dos métodos do iterador dentro do Editor, de modo semelhante como os scripts de Corrotinas dentro do MonoBehaviour são tratados durante o tempo de execução.
Remoção de código gerenciado com Unity Linker
O Unity Linker executa análise estática para remover código gerenciado. Ele também reconhece uma quantidade de atributos e permite que você anote as dependências onde é impossível identificá-las. No Unity 2020.2, a ferramenta recebeu atualizações da API para corresponder ao Mono IL Linker. Começando com o Unity 2020.1, o Unity Linker pode detectar alguns padrões simples de reflexão, diminuindo a necessidade de usar arquivos link.xml.
Atualizações do Profiler
Você pode adicionar gráficos na janela do Profiler para obter mais informações de desempenho e contexto para estatísticas do Profiler existentes ou geradas pelo usuário. Ao mesmo tempo, os eventos de fluxo podem exibir dependências de tarefa serial na Timeline do Profiler e ajudar você a identificar em que tarefa, em uma sequência de operações, seu aplicativo está gastando tempo.
Agora você pode visualizar estatísticas de renderização e memória do Profiler em Players. Exponha as estatísticas existentes do Profiler usando uma API de tempo de execução e leia os valores das estatísticas de desempenho para as áreas existentes do Profiler. como memória, renderização e outros em Players. Use esses dados para exibir heads-up displays (HUDs) de desempenho enquanto executa seu projeto no dispositivo de destino ou cria outra ferramenta de desempenho para suas próprias necessidades.
Melhorias no analisador Roslyn
O pipeline de compilação agora suporta analisadores Roslyn. Isso permite que você execute analisadores de código C# de maneira assíncrona no plano de fundo dentro do Unity Editor sem interromper o fluxo de trabalho de iteração. Você também pode executá-los de maneira síncrona a partir da linha de comando.
Os analisadores Roslyn e os arquivos de conjunto de regras nos projetos do Unity são ferramentas avançadas para ajudar a inspecionar seu código e verificar se há problemas de estilo, qualidade e outros. Você pode usar bibliotecas existentes do analisador para inspecionar seu código e escrever seus próprios analisadores a fim de promover as melhores práticas ou convenções dentro de sua organização.
Modo seguro do Unity
O modo seguro do Unity melhora o modo como o Unity se comporta ao abrir um projeto que tenha erros de compilação de script. Se erros de compilação forem detectados na inicialização do Editor, você será avisado para entrar no modo seguro. Esse modo apresenta um ambiente projetado para resolvê-los, de maneira que você possa retornar rapidamente seu projeto a um estado funcional sem esperar por importações desnecessárias dos assets do projeto. Esse recurso vai simplificar e acelerar o processo de atualização de um projeto para uma nova versão do Unity e ajudará equipes que trabalham em grandes projetos ao reduzir o número de casos nos quais a pasta da biblioteca contenha artefatos de importação incorretos.