O Unity oferece suporte a uma variedade de editores de código, incluindo JetBrains Rider, Atom e Microsoft Visual Studio Code e Visual Studio. O Visual Studio é um pacote integrado que é instalado por padrão com o Unity Editor.
Este artigo fornece dicas para usar a edição 2022 do depurador do Microsoft Visual Studio, que permite corrigir bugs em seu código com eficiência. Se quiser saber mais sobre dicas gerais de produtividade no Visual Studio, confira nossa publicação no blog "10 maneiras de acelerar seus fluxos de trabalho no Visual Studio".
O Visual Studio 2022 tem suporte integrado para o Unity, permitindo que você escreva e edite scripts com facilidade, acesse recursos específicos do Unity e depure seu código de jogo sem sair do IDE. Ele oferece recursos como o preenchimento de código do IntelliSense, realce de sintaxe e trechos de código, que o ajudam a escrever códigos com mais rapidez e eficiência. Além disso, você tem ferramentas de depuração, incluindo a capacidade de definir pontos de interrupção, percorrer o código, inspecionar variáveis e avaliar expressões em tempo de execução.
O Visual Studio está disponível em várias versões, incluindo uma versão gratuita para a comunidade.
Este artigo é baseado na edição 2022 do Visual Studio. A versão 2019 tem os mesmos recursos, mas as capturas de tela serão um pouco diferentes. Por padrão, uma nova instalação do Unity instalará a versão comunitária do Visual Studio, juntamente com uma extensão chamada Game Development with Unity que integra o Visual Studio ao Unity. Se você não optar por instalar o Visual Studio, poderá obter uma cópia aqui. Detalhes sobre a configuração do Visual Studio para trabalhar com o Unity estão disponíveis aqui.
Depois de instalar o Visual Studio no Unity Editor, abra Unity > Preferences > External Tools e selecione Visual Studio como External Script Editor.
Para permitir a depuração em tempo real do código do seu projeto enquanto ele estiver sendo executado no Editor, o depurador do Visual Studio precisa se conectar ao Editor. Isso permite que o depurador acesse e interaja com o estado de tempo de execução do seu jogo. Vamos seguir as etapas para anexá-lo:
Abra o projeto Unity que você deseja depurar.
No Unity, vá para Edit > Preferences (Windows) ou Unity > Preferences (macOS) e certifique-se de que o Visual Studio esteja definido como o editor de script externo preferencial. Caso contrário, selecione-o no menu suspenso.
Abra o script desejado no Visual Studio clicando duas vezes no arquivo de script na visualização Project ou por meio da opção de menu Assets > Open C# Project.
No Visual Studio, vá para Debug > Attach Unity Debugger ou clique no botão Attach to Unity na barra de ferramentas. Uma janela será aberta com uma lista das instâncias disponíveis do Unity.
Selecione a instância do Unity que está executando seu projeto (geralmente exibida como "Unity Editor (nome do seu projeto)" e clique em Attach.
O Visual Studio agora está conectado ao Unity, e você pode começar a definir pontos de interrupção e depurar seu código. Quando o jogo estiver em execução no Editor, o depurador do Visual Studio pausará a execução em pontos de interrupção, permitindo que você examine o estado do jogo e depure seu código, conforme mostrado na próxima seção.
Se esta for sua primeira sessão de depuração, você verá uma janela com a opção de ativar a depuração para a sessão atual ou para todas as sessões. Recomenda-se escolher a primeira opção, "Habilitar depuração para esta sessão".
Um ponto de interrupção é um marcador em uma linha específica de código. Quando o depurador encontra um ponto de interrupção, ele interrompe a execução do programa, permitindo que você inspecione o estado atual das variáveis, dos objetos e da pilha de chamadas. Em seguida, você pode percorrer o código linha por linha, observando como o estado muda à medida que o programa é executado.
Para definir um ponto de interrupção no Visual Studio, abra o script e clique na margem esquerda do editor de código ao lado da linha de código em que você deseja pausar a execução. Ou coloque o cursor na linha e pressione F9. Um ponto vermelho aparecerá, indicando que um ponto de interrupção foi definido, conforme mostrado na imagem superior acima.
Agora, vá para o Unity Editor e jogue o jogo. Quando a execução do programa atingir a linha com o ponto de interrupção, o Visual Studio se tornará o aplicativo ativo em primeiro plano com a execução do programa pausada na linha do ponto de interrupção. Nesse ponto, você pode usar as ferramentas do Visual Studio para inspecionar as variáveis.
A opção mais simples é passar o mouse sobre um objeto, uma propriedade ou uma variável simples. O Visual Studio adicionará um painel de sobreposição (imagem inferior na colagem acima), permitindo que você visualize as sobrecargas de uma função, as propriedades de um objeto e os valores de uma propriedade ou variável.
Se a sobreposição tiver uma seta apontando para a direita, clicar nela expandirá o painel para oferecer mais informações sobre os valores internos das propriedades do objeto.
Essa capacidade de examinar valores em um programa em execução é incrivelmente útil.
Quando o Visual Studio é anexado ao Unity, uma nova barra de ferramentas é adicionada à direita de Debug > Attach to Unity. Os quatro botões dessa barra de ferramentas fazem o seguinte, da esquerda para a direita:
- Continuar/Pausar a execução: Se o programa estiver sendo reproduzido no momento, será exibido um ícone de pausa no qual você pode clicar para pausar a execução. Com o programa pausado, aparece um ícone de seta para a direita, indicando que pressionar o botão retomará a execução do programa.
- Passo a passo: Pressionar esse botão executará a linha de código destacada e fará uma pausa novamente na próxima linha.
- Entre: Se a linha de código ativa incluir uma função em que o código-fonte faz parte do projeto, esse botão permitirá que o desenvolvedor entre e percorra a função e seu código.
- Saia da frente: Isso move a execução do programa para fora da função atual.
Um ponto de interrupção condicional é uma forma avançada de ponto de interrupção que só pausa a execução se uma condição especificada for atendida. Isso pode ser útil quando você deseja investigar um cenário específico ou quando um problema ocorre somente em determinadas condições.
Se você clicar com o botão direito do mouse no ponto de interrupção na barra lateral ou na janela de ponto de interrupção do painel inferior, o menu de contexto será exibido. Selecione Editar ponto de interrupção. A caixa de diálogo mostrada na imagem acima será exibida.
Mais ferramentas de depuração
No Visual Studio, a janela do depurador oferece várias janelas que o ajudam a inspecionar o estado do aplicativo enquanto ele está pausado em um ponto de interrupção. Três janelas essenciais para examinar o estado de seu programa são Locals, Watch e Call Stack. As seções a seguir analisam cada uma delas.
A janela Locais exibe as variáveis locais e seus valores no escopo atual do código em execução. Isso inclui as variáveis declaradas no método ou bloco atual, bem como os argumentos do método. A janela Locais permite inspecionar rapidamente os valores das variáveis no ponto de interrupção atual, o que pode ser útil para identificar valores incorretos ou inesperados que possam estar causando problemas no seu código. Lembre-se de que, se uma linha começar com uma seta apontando para a direita, ela poderá ser expandida, enquanto uma seta apontando para baixo encolherá a janela expandida.
A janela Watch permite que você acompanhe variáveis ou expressões específicas que deseja monitorar durante o processo de depuração. Ao contrário da janela Locais, que mostra variáveis no escopo atual, a janela Watch permite que você adicione manualmente variáveis ou expressões, independentemente do escopo. Isso pode ser útil para rastrear o estado de determinadas variáveis durante a execução do programa ou para avaliar expressões com base no estado atual do aplicativo.
Digite o nome de uma variável ou objeto no escopo e um painel será adicionado para que você possa inspecioná-lo. Para adicionar um relógio no Visual Studio, clique com o botão direito do mouse em uma variável ou expressão em seu código e selecione Add Watch (Adicionar relógio ) no menu de contexto, ou digite a expressão diretamente na janela Watch.
A janela Pilha de chamadas exibe a sequência de chamadas de métodos que levaram ao ponto de interrupção atual, permitindo que você rastreie o caminho de execução do seu programa. Cada entrada na pilha de chamadas representa uma chamada de método, com a chamada mais recente no topo da lista. Ao inspecionar a pilha de chamadas, você pode determinar como o seu código chegou ao ponto atual de execução, o que o ajuda a identificar a causa raiz de problemas ou comportamentos inesperados.
Além de mostrar a sequência de chamadas de métodos, a janela Pilha de chamadas permite que você navegue pelos diferentes níveis da pilha. Ao clicar duas vezes em uma entrada da lista, você pode ir para a linha de código correspondente no arquivo de origem e visualizar as variáveis locais e os parâmetros desse método. Isso facilita a compreensão do contexto em que um determinado método foi chamado e a análise do fluxo de dados em seu aplicativo.
O depurador do Visual Studio não é útil apenas para o jogo em execução no Unity Editor, mas também para as compilações. Você precisará garantir que a compilação inclua os dados usados pelo depurador. Isso é feito em File > Build Settings e, na janela exibida, escolha Development Build e Script Debugging (veja a imagem acima)
Selecione Debug > Attach Unity Debugger no menu principal do Windows ou Debug > Attach to Process no menu superior do MacOS.
Escolha a instância chamada Unity Player. Agora, todos os breakpoints, locals e watches estão disponíveis na compilação de desenvolvimento.
Está planejando usar outro editor de código? Leia nosso artigo sobre dicas para o Microsoft Visual Studio Code.
O Unity fornece vários guias avançados para ajudar os desenvolvedores profissionais a otimizar seu código de jogo. Criar um guia de estilo C#: Write cleaner code that scales compila conselhos de especialistas do setor sobre como criar um guia de estilo de código para ajudar sua equipe a desenvolver uma base de código limpa, legível e dimensionável.
Outro guia popular entre nossos usuários é Mais de 70 dicas para aumentar a produtividade com o Unity. Ele está repleto de dicas que economizam tempo para melhorar seu fluxo de trabalho agregado diário com o Unity 2020 LTS, incluindo dicas que até mesmo desenvolvedores experientes podem ter perdido.
Encontre todos os e-books e artigos avançados da Unity no hub de práticas recomendadas da Unity.