Aprendendo a programar jogos em Unity: desafios na migração de projetos entre editores de famílias diferentes

Vamos observar elementos envolvidos no processo de migração de projetos entre versões de famílias diferentes do Unity.

em 01/11/2026
Seja bem-vindo(a) ao GameDev: Aprendendo a programar jogos em Unity de hoje! Depois de experimentarmos, em nosso encontro anterior, a migração de um projeto entre editores pertencentes à mesma linha de versões, vamos observar, na prática, o que ocorre quando decidimos atualizar nossos projetos para versões do editor de famílias distintas.


Se hoje for a primeira vez que você tem contato com conteúdos de nossa série, considere-se especialmente convidado a trilhar conosco uma divertida estrada, repleta de interessantes conhecimentos sobre o mundo do desenvolvimento de jogos digitais.

Por meio da elaboração de projetos práticos de programação de games, temos a oportunidade de aprender diferentes conceitos relacionados ao processo de criação de um jogo, tanto em relação as mecânicas de gameplay utilizadas e a elaboração de scripts controladores de comportamentos e de regras, quanto sobre os aspectos multimídia dos projetos, como, por exemplo, a apresentação visual e sonora dos elementos presentes em um game.

A partir do primeiro tópico da série, você poderá acompanhar o processo de criação de três jogos distintos, cada um com seus próprios estilos gráficos e de gameplay: Forest Ping Pong, game inspirado no clássico Pong (Atari, 1972); Motorista da Pesada, um curioso platformer rodoviário, com aspectos de gameplay inspirados nos do arcade City Connection (Jaleco, 1985); e Consultório do Dr. Tratanildo, um puzzle ambientado em um consultório médico tridimensional, com diversos elementos inspirados em títulos dos anos 1980 e 1990, como Pac-Man (Namco, 1980), Dr. Mario (Nintendo, 1990) e Tama (Time Warner Interactive, 1994).


As etapas de elaboração dos jogos são detalhadas e apresentadas em mais de 140 textos, utilizando atividades e exemplos práticos para demonstrar, dentre outros, a instalação e a configuração da ferramenta Unity em nossos computadores, as etapas de elaboração de regras e de objetivos de um game, e a elaboração dos elementos que compõem, de fato, a estrutura básica de nossas aventuras virtuais, tais como cenários, personagens, adversários, itens e fases.

De forma prática, você poderá entender e experimentar variados conceitos utilizados no desenvolvimento de jogos 2D e 3D, permitindo que possa, posteriormente, aplicá-los em seus projetos pessoais. Mesmo quem não teve oportunidades prévias para aprender programação de jogos ou de sistemas poderá aprender os conceitos necessários para tirar do papel os projetos que sempre sonhou.

Se você quer aprender a programar seus próprios jogos, mas ainda não sabe por onde começar sua caminhada, aproveite essa oportunidade e junte-se a nós em uma jornada repleta de novos conhecimentos e de muita diversão!

Instalando uma nova versão

Dando sequência às experimentações com migrações de projetos que iniciamos no encontro anterior, vamos instalar uma versão atualizada do Unity para observarmos como costuma ocorrer a migração de um projeto para famílias atualizadas do editor.

Para tal, abra o Unity Hub e, em seguida, dirija-se à seção Installs; em seguida, clique no botão Install Editor, localizado no canto superior direito da janela (botão azul).

Na tela que for exibida, clique sobre o botão Archive e configure as opções conforme segue:
  • Version: Unity 6;
  • Resease Stream: LTS.
Na listagem, busque a versão mais recente disponível do Unity 6.3 LTS; na data de escrita deste texto, trata-se da versão 6000.3.27f2. Clique em Install, conforme exemplificado pela imagem a seguir.

Assim como realizamos no encontro anterior, para a configuração da nova versão do editor, selecione as opções Android Build Support (e subitens), Universal Windows Platform, Web Build e Windows Build Support, antes de prosseguir. Após a seleção dos elementos, clique em Continue para prosseguir com a instalação. Caso alguma opção adicional seja apresentada para confirmação, prossiga selecionando-as.


Note que, entre versões de famílias diferentes, a listagem de plataformas suportadas pelos editores do Unity costuma mudar, tanto em relação à nomenclatura utilizada (WebGL para Web Build), quanto sobre as opções fornecidas.

Ao término do processo, na seção Installs do Unity Hub, a nova versão serão exibidas em tela, conforme podemos observar na imagem a seguir.


Atualizando o projeto

Ainda com o Unity Hub em evidência, acesse a seção Projects, em seguida, clique no campo Editor version, referente ao projeto Consultório do Dr. Tratanildo. Na janela que for exibida, selecione a instalação Unity 6.3 LTS mais recente e, em seguida, no botão Open.

O Unity Hub irá apresentar um alerta em tela, solicitando uma confirmação para prosseguirmos com o processo. Clique em Change Version para que a migração entre versões seja iniciada.


Assim como o ocorrido no último encontro, o Unity Hub irá inicializar o editor mais recente e, em seguida, será exibida a seguinte janela de confirmação: após clicarmos em Continue, não será mais possível abrir o projeto na versão antiga do editor.


Como estamos atualizando um projeto entre famílias diferentes do editor, não é incomum a exibição de janelas com informações sobre alterações de parâmetros utilizados em configurações do projeto. Um exemplo é a janela representada na próxima imagem, que informa uma mudança pontual da versão padrão da biblioteca DirectX adotada pelo Unity a partir da versão 6.1.

Caso sejam exibidas janelas dessa natureza, clique em Confirm para prosseguir com o processo de migração do projeto.


Ao término, se tudo correr dentro dos conformes, mais uma vez atualizamos nosso projeto entre versões, dessa vez em uma família e uma linha diferentes da originalmente utilizada na construção de nosso projeto.

É interessante observarmos as mudanças práticas que a utilização de uma nova versão podem trazer às nossas rotinas de programação de scripts e de manipulação de GameObjects e de assets. Situações bem comuns de se ocorrer são aquelas que envolvem o reposicionamento de elementos em menus e janelas da interface ou a adoção de nomenclaturas atualizadas.

Por exemplo, o comando para criação de novos scripts na família Unity 6.3 foi reordenado, sendo realizado pelo menu Create > MonoBehaviour Script, e não mais pelo comando C# Script, como nas versões da família 2020.

Outros elementos são remanejados ou mesmo preteridos por opções mais modernas, como é o caso do componente Text, que, embora ainda seja utilizável normalmente, passou para a “prateleira” dos elementos legados (Legacy), sendo indicada a utilização do componente TextMeshPro em seu lugar.

Enfrentando desafios

Nem sempre uma migração de projeto entre versões do editor ocorre sem sobressaltos. Seja devido a uma referência a pacotes instalados perdida, a uma atualização de comandos sem reposição ou mesmo à adoção de uma plataforma que deixou de receber suporte do Unity, às vezes é necessário tomarmos algumas ações adicionais para que nosso projeto volte a funcionar bem, depois de iniciarmos seu processo de atualização.

Um exemplo prático ocorre ao baixarmos o gabarito do projeto Forest Ping Pong e, após descompactarmos o projeto, tentarmos abrir diretamente o projeto na versão Unity 6 LTS que instalamos hoje. Após alguns instantes do processo de importação do projeto, a seguinte janela costuma ser exibida.


O Safe Mode é um recurso das versões mais recentes do Unity que nos permite abrir um projeto com problemas de compilação ou de importação de forma controlada, permitindo a realização de correções para que ele volte a funcionar adequadamente.

Nesse exemplo, após clicarmos em Enter Safe Mode, o editor do Unity é aberto de forma parcial, exibindo os elementos ilustrados a seguir.

A cena em si não é exibida, mas o supostos erros de compilação dos scripts dos projetos nos indicam uma pista do que precisamos investigar para solucionar o problema.

Note que, dentre os diferentes erros de compilação, praticamente todos fazem referência à elementos gráficos presentes na interface do game, como componentes de tipo Text. Esses elementos são carregados para o projeto por meio das bibliotecas de UI (User Interface) do Unity, que normalmente são carregadas automaticamente em projetos novos, mas podem se perder na migração entre versões do editor, sob determinadas circunstâncias específicas.

Para corrigir este erro, vamos abrir o gerenciador de pacotes do Unity: clique no menu Window, em seguida, em Package Management e, por fim, sobre Package Manager.

Na nova janela exibida, escolha a opção Unity Registry e, no campo de pesquisa, digite “UI”, sem as aspas. Localize o pacote uGUI e clique em Install, para que ele seja registrado novamente para uso por nosso projeto.

Em seguida, após a identificação pelo Unity das bibliotecas de UI, o carregamento do projeto voltará a ocorrer sem sobressaltos.

Em outros casos, pode ocorrer do projeto e de suas cenas serem carregadas, mas não serem exibidos adequadamente os elementos em cena, ou mesmo determinados comportamentos do game não ocorrerem conforme planejado.

Para esses casos, é importante observar se algum script não foi carregado adequadamente, seja por meio dos avisos do Console, seja pela exibição explícita de um script quebrado ou ausente, na visualização da aba Inspector do referido GameObject.

Normalmente, o problema também envolve questões de pacotes não carregados, tendo solução semelhante à apresentada agora há pouco. Por isso é importante realizarmos a anotação prévia dos pacotes utilizados por um projeto, como indicamos em nosso encontro anterior, antes de realizarmos migrações entre versões do Unity, especialmente entre linhas ou famílias distintas.

Ao notarmos a ausência de um pacote ou biblioteca, tendo a lista previamente anotada em mãos, fica mais fácil diagnosticar e corrigir os comportamentos indesejados observados.

Outras configurações que merecem especial atenção em casos de situações estranhas ou erros na execução do jogo pós-migração são aquelas presentes na janela Project Settings, acessível por meio do menu Edit do programa.


Próximos passos

Após realizarmos observações e experimentações sobre o processo de migração de projetos para versões mais recentes do Unity, nos próximos encontros vamos nos dedicar a entender melhor sobre como o Unity permite a criação de jogos para múltiplas plataformas, tomando como base um mesmo projeto e código-fonte.

Nos encontraremos novamente no dia 8 de novembro. Até mais! Fique ligado sempre nas novidades do GameBlast!

Revisão: Ives Boitano
Siga o Blast nas Redes Sociais
Rodrigo Garcia Pontes
Entendo videogames como sendo uma expressão de arte e lazer e, também, como uma impactante ferramenta de educação. No momento, doutorando em Sistemas da Informação pela EACH-USP, desenvolvendo jogos e sistemas desde 2020. Se quiser bater um papo comigo, nas redes sociais procure por @RodrigoGPontes.
Este texto não representa a opinião do GameBlast. Somos uma comunidade de gamers aberta às visões e experiências de cada autor. Você pode compartilhar este conteúdo creditando o autor e veículo original (BY-SA 4.0).