O que você está procurando?
Hero background image
Unity 2019.3 release

Novos recursos e atualizações para programadores

Conheça as novidades para programadores no Unity 2019.3, incluindo atualizações importantes para DOTS, controle de versão melhorado, Entrada no Modo Play configurável, melhorias para serialização, atualizações de física e muito mais.

Novidades

Aqui está uma visão geral sobre as principais atualizações para ferramentas de programador. Para obter todos os detalhes, confira as notas de lançamento.

Atualização para DOTS Game Code

Escreva menos código de boilerplate com as novas versões dos nossos pacotes DOTS. Substitua componentes de criação personalizados por um simples atributo [GenerateAuthoringComponent] e substitua os elementos IJobForEach e IJobForEachWithEntity verbosos pelo Entities.ForEach() simplificado, porém tão rápido quanto, que agora usa o Compilador Burst e o sistema de trabalho em C#.

Para começar a escrever código DOTS da nova maneira, instale o pacote Entities (visualização) do Package Manager.

Melhorias de serialização

O novo atributo SerializeReference permite que você serialize classes C# como referências em vez de tipos de valor. Isso significa que você pode ter POCOs (plain old C# objects) fazendo referência uns aos outros, simplificando o código para expressar e gerenciar estruturas de dados complexas, como gráficos e árvores.

Também oferece suporte para que os campos possam conter dados polifórmicos. Por exemplo, uma lista do tipo List<IAnimal> pode conter cães (classe Dog : IAnimal{}) e gatos (classe Cat : IAnimal{}).

Os campos marcados para serialização como referências agora podem expressar valores nulos de maneira intrínseca. Antes, serializar um campo vazio sempre cancelaria a serialização usando o construtor padrão daquele tipo.

Tradicionalmente, a serialização de tipos não Unity ignorou o polimorfismo. No Unity 2019.3, a serialização polimórfica permite que você mantenha as referências do objeto que antes não sobreviviam ao processo de serialização, e fazer referência de maneira mais correta à cadeia de sucessão.

Iteração mais rápida com a Entrada no Modo Play configurável
Iteração mais rápida com a Entrada no Modo Play configurável

Atualmente, ao entrar no Modo Play no Editor, o Unity faz duas coisas: redefine os estados de scripts (Domain Reload) e recarrega a Cena. Isso leva tempo e quando seu projeto fica mais complexo, o Unity Editor pode apresentar lentidão para entrar no Modo Play. É por isso que estamos introduzindo o Configurable Enter Play Mode (Experimental) nas opções Project Settings > Editor > Enter Play Mode.

Essas opções permitem que você desabilite recarregamento de domínio e/ou cena a partir do processo de Entrada no Modo Play quando não houver alterações de código. Com base nos resultados do nosso teste, alterar essas configurações pode economizar 50–90% do tempo de iteração, dependendo do projeto.

Confira Como configurar o Modo Play na documentação para obter mais detalhes sobre como modificar seus scripts corretamente ao desabilitar Domain Reload.

Você também pode acessar esse recurso por meio de uma API e um callback se quiser redefinir o estado do jogo antes de entrar no Modo Play.

No momento, esse recurso é experimental e estamos ansiosos para saber a sua opinião no fórum.

Biblioteca PhysX atualizada de v3.4 para v4.1
Biblioteca PhysX atualizada de v3.4 para v4.1

Nós atualizamos a biblioteca PhysX de v3.4 para v4.1. Isso inclui o novo solucionador Temporal Gauss-Seidel, que permite que as uniões sejam mais resistentes ao excesso de extensão e impede comportamento irregular visto anteriormente durante a simulação. Para ativar o novo solucionador, vá para Configurações do projeto > Física.

Também revelamos o novo algoritmo Automatic Box Pruning de fase ampla, capaz de computar as fronteiras de mundo e o número de subdivisões automaticamente. Isso é uma atualização do algoritmo Multi-Box Pruning existente.

Além disso, um algoritmo de fase intermediária de malha mais rápido está disponível em plataformas de desktop. Não exige estruturas de aceleração que consomem muitos recursos para ser construído (R-Trees), o que é útil para conteúdo gerado em tempo de execução pois o tempo de instanciação MeshCollider será reduzido.

Também adicionamos uma nova API para permitir baking atrasado de malhas para MeshCollider. Você pode ocultar o processo de baking de malhas intenso do ponto de vista computacional por trás de uma tela de carregamento ou cenas de transição, como uma cena de diálogo em um jogo de aventura. Essa API é segura para threads, para que você possa chamar a função de fora da thread principal, incluindo via sistema de trabalho em C#, para fazer o baking de várias malhas ao mesmo tempo.

Para obter mais informações, consulte a seção “Migrating from PhysX SDK 3.4 to 4.0” no PhysX 4.1 SDK Guide da NVIDIA.

Aprimoramento do Profiler: Contagem de quadros configurável
Aprimoramento do Profiler: Contagem de quadros configurável

Antes do 2019.3, ao investigar o desempenho por meio da janela do Profiler, você podia ver dados de perfil de 300 quadros por vez. Isso nem sempre oferecia tempo suficiente para pegar os quadros que realmente importavam.

A contagem de quadros configurável permite estender essa janela de captura. Na janela Preferences, agora você pode configurar o número de quadros (300–2000) que deseja que a janela do Profiler mostre.

Aprimoramento do Profiler: Suporte ao Deep Profile nos jogadores
Aprimoramento do Profiler: Suporte ao Deep Profile nos jogadores
Aprimoramento do Profiler: Suporte a pilhas de chamadas de alocação gerenciada no Players
Aprimoramento do Profiler: Suporte a pilhas de chamadas de alocação gerenciada no Players

O rastreamento e a análise de alocações gerenciados é um recurso importante do Profiler do Unity.
A alocação gerenciada contínua faz com que a Garbage Collection (GC) entre em ação e prejudique a jogabilidade suave com atraso de vários quadros. Saber quando as alocações acontecem e suas origens no código são informações essenciais ao desenvolver jogos com o Unity.

No 2019.3, nós introduzimos pilhas de chamada para alocações gerenciadas em Players. Isso permite que você veja a função em C# em da qual uma alocação de GC é proveniente ao criar perfil de Players.

A opção pode ser habilitada com a chave Call Stacks.

Melhorias no controle de versão

O Unity 2019.3 também inclui uma modernização do nosso suporte ao controle de versão.

Isso inclui diversas melhorias de UX e integração, e correções para a nossa integração Perforce, como tentativa de reconexão automática se uma conexão Perforce for perdida.

Uma barra Version Control agora está disponível na parte superior da janela Inspector, permitindo que você realize operações adicionais, como Add, Lock, Unlock e Submit, entre outras melhorias.

Além disso, no Inspector para assets não extraídos, agora você pode clicar com o botão direito do mouse para copiar os valores de campos desabilitados do Inspector.

Confira as notas de lançamento para obter mais detalhes sobre todas as melhorias e correções de UI.

Addressables
Addressables

Esta versão inclui o novo Addressable Asset System (isto é, Addressables), que oferece uma maneira fácil para carregar assets por “endereço”, enquanto lida com as despesas gerais do gerenciamento de assets simplificando a criação e a implantação de pacotes de conteúdo. Resumindo, o Addressables permite que sua equipe gerencie com eficiência conteúdo ao vivo complexo.

Netcode
Netcode

O FPS Netcode usado no DOTS Sample é desenvolvido com base no DOTS e facilita a criação de um jogo em rede com arquitetura semelhante. Inclui previsão do lado do cliente, servidor autoritário, interpolação e compensação de atraso.

Obtenha uma introdução ao FPS NetCode com a palestra de Tim Johansson na Unite.

Baixar o Unity 2019.3 agora
Baixar o Unity 2019.3 agora

Obtenha acesso a todos os itens acima e muito mais hoje.