• Jogos
  • Setor
  • Recursos
  • Comunidade
  • Aprendizado
  • Suporte
Desenvolvimento
Engine do Unity
Crie jogos 2D e 3D para qualquer plataforma
BaixarPlanos e preços
Monetização
Compra no aplicativo (IAP)
Descubra e gerencie IAP em todas as lojas
Mediation
Maximize a receita e otimize a monetização
Qualidade do anúncio
Proteja a experiência do usuário do seu aplicativo
Tapjoy
Construa lealdade do usuário a longo prazo
Todos os produtos de monetização
Aquisição de usuários
Aquisição de usuários
Seja descoberto e adquira usuários móveis
Unity Vector AI
Conecte jogadores com os jogos certos
Aura publicidade no dispositivo
Alcance usuários no dispositivo no pico de engajamento
Todos os produtos de crescimento
Casos de uso
Colaboração 3D
Construa e revise projetos 3D em tempo real
Treinamento imersivo
Treine em ambientes imersivos
Experiências do cliente
Crie experiências interativas em 3D
Todas as soluções da indústria
Setores
Manufatura
Alcançar excelência operacional
Varejo
Transformar experiências em loja em experiências online
Automotivo
Elevar a inovação e as experiências dentro do carro
Todos os setores
Biblioteca técnica
Documentação
Manuais do usuário oficiais e referências de API
Ferramentas de desenvolvedor
Versões de lançamento e rastreador de problemas
Roteiro
Revisar recursos futuros
Glossário
Biblioteca de termos técnicos
Insights
Estudos de caso
Histórias de sucesso do mundo real
Guias de melhores práticas
Dicas e truques de especialistas
Todos os recursos
Novidades
Blog
Atualizações, informações e dicas técnicas
Notícias
Notícias, histórias e centro de imprensa
Central da Comunidade
Discussões
Discutir, resolver problemas e conectar
Eventos
Eventos globais e locais
Histórias da comunidade
Made with Unity
Mostrando criadores do Unity
Transmissões ao vivo
Junte-se a desenvolvedores, criadores e insiders
Prêmios Unity
Celebrando criadores do Unity em todo o mundo
Para todos os níveis
Unity Learn
Domine habilidades do Unity gratuitamente
Treinamento profissional
Aprimore sua equipe com treinadores do Unity
É iniciante no Unity?
Conceitos básicos
Inicie seu aprendizado
Caminhos Essenciais do Unity
É iniciante no Unity? Comece sua jornada
Tutoriais
Dicas práticas e melhores práticas
Educação
Para estudantes
Impulsione sua carreira
Para educadores
Impulsione seu ensino
Concessão de Licença Educacional
Leve o poder do Unity para sua instituição
Certificações
Prove sua maestria em Unity
Opções de suporte
Obter ajuda
Ajudando você a ter sucesso com Unity
Planos de sucesso
Alcance seus objetivos mais rápido com suporte especializado
Perguntas frequentes
Respostas para perguntas comuns
Entre em contato conosco
Conecte-se com nossa equipe
Planos e preços
Idioma
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Social
Moeda
Comprar
  • Produtos
  • Unity Ads
  • Assinatura
  • Unity Asset Store
  • Revendedores
Educação
  • Estudantes
  • Educadores
  • Instituições
  • Certificação
  • Learn
  • Programa de Desenvolvimento de Habilidades
Baixar
  • Unity Hub
  • Arquivo de download
  • Programa beta
Unity Labs
  • Laboratórios
  • Publicações
Recursos
  • Plataforma de aprendizado
  • Comunidade
  • Documentação
  • Unity QA
  • Perguntas frequentes
  • Status dos Serviços
  • Estudos de caso
  • Made with Unity
Unity
  • Nossa empresa
  • Boletim informativo
  • Blog
  • Eventos
  • Carreiras
  • Ajuda
  • Imprensa
  • Parceiros
  • Investidores
  • Afiliados
  • Segurança
  • Impacto social
  • Inclusão e Diversidade
  • Entre em contato conosco
Copyright © 2025 Unity Technologies
  • Informações legais
  • Política de Privacidade
  • Cookies
  • Não venda nem compartilhe minhas informações pessoais

“Unity”, logotipos Unity e outras marcas comerciais de Unity são marcas comerciais ou marcas comerciais registradas da Unity Technologies ou de suas afiliadas (mais informações aqui). Outros nomes e marcas são marcas comerciais de seus respectivos detentores.

Hero background image

Dicas de nomenclatura e estilo de código para scripts C# no Unity

Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.
Clique aqui.

Embora possa não haver uma maneira certa de formatar seu código C#, concordar com um estilo consistente em sua equipe pode resultar em uma base de código mais limpa, legível e escalável. Um guia de estilo bem organizado pode ajudá-lo a controlar discrepâncias para produzir um produto final coeso. Esta página fornece dicas e considerações-chave a serem lembradas para convenções de nomenclatura e formatação de código ao criar seu próprio guia de estilo.

Observação: As recomendações compartilhadas aqui são baseadas naquelas fornecidas pela Microsoft. As melhores regras de guia de estilo de código são aquelas que funcionam melhor para as necessidades da sua equipe.

Você pode encontrar um exemplo de guia de estilo de código aqui ou baixar o e-book completo, Crie um guia de estilo C#: Escreva um código mais limpo que escale.

  • Terminologia de casing
  • Campos e variáveis
  • Enums
  • Classes e interfaces
  • Métodos
  • Eventos e manipuladores de eventos
  • Use verbos
  • Use System.Action
  • Prefixe o método com "On"
  • Prefixe com o nome do sujeito e um sublinhado
  • Use EventArgs com cuidado
  • Espaços de nomes
  • Prefixos

Terminologia de casing

Você não pode definir variáveis com espaços no nome porque C# usa o caractere de espaço para separar identificadores. Esquemas de capitalização podem aliviar o problema de ter que usar nomes compostos ou frases no código-fonte.

Listados abaixo estão várias convenções de nomenclatura e capitalização bem conhecidas:

Case camel

Também conhecido como camel caps, case camel é a prática de escrever frases sem espaços ou pontuação, separando palavras com uma única letra maiúscula. A primeira letra é minúscula.

Normalmente, variáveis locais e parâmetros de método aparecem em case camel. Por exemplo:

examplePlayerController
maxHealthPoints
endOfFile

Case Pascal

Case Pascal é uma variação do case camel, onde a letra inicial é maiúscula. Use isso para nomes de classes e métodos no desenvolvimento Unity. Campos públicos também podem ser em case Pascal. Por exemplo:

ExamplePlayerController
MaxHealthPoints
EndOfFile

Case Snake

Neste caso, os espaços entre as palavras são substituídos por um caractere de sublinhado. Por exemplo:

example_player_controller
max_health_points
end_of_file

Case kebab

Aqui, os espaços entre as palavras são substituídos por traços. As palavras então aparecem em uma espécie de "espeto" de caracteres de traço. Por exemplo:

exemplo-controle-jogador
max-pontos-de-vida
fim-do-arquivo

O problema com o case kebab é que muitas linguagens de programação usam o traço como sinal de menos. Além disso, algumas linguagens interpretam números separados por traços como datas do calendário.

Notação húngara

O nome da variável ou função geralmente indica sua intenção ou tipo. Por exemplo:

int iContador
string strNomeDoJogador

A notação húngara é uma convenção mais antiga e não é comumente usada no desenvolvimento em Unity.

Tabela de campos e variáveis

Campos e variáveis

Considere estas regras para suas variáveis e campos:

  • Use substantivos para nomes de variáveis: Os nomes das variáveis devem ser claros e descritivos porque representam uma coisa ou estado específico. Use um substantivo ao nomeá-las, exceto quando a variável for do tipo bool (veja abaixo).
  • Prefixe Booleans com um verbo: Essas variáveis indicam um valor verdadeiro ou falso. Frequentemente, eles são a resposta para uma pergunta, como: O jogador está correndo? O jogo acabou?
  • Prefixe-os com um verbo para tornar seu significado mais aparente. Frequentemente, isso é combinado com uma descrição ou condição, por exemplo, isDead, isWalking, hasDamageMultiplier, etc.
  • Use nomes significativos. Não abrevie (a menos que seja matemática): Os nomes das suas variáveis revelarão sua intenção. Escolha nomes que sejam fáceis de pronunciar e pesquisar.
  • Embora variáveis de uma letra sejam adequadas para loops e expressões matemáticas, não abrevie em outras situações. Clareza é mais importante do que qualquer tempo economizado ao omitir algumas vogais.
  • Para protótipos rápidos, você pode usar nomes curtos "lixo" temporariamente e depois refatorar para nomes mais significativos mais tarde.
  • Use a notação Pascal para campos públicos e use a notação camel para variáveis privadas: Como alternativa aos campos públicos, use propriedades com um "getter" público (veja as seções anteriores e seguintes).
  • Evite muitos prefixos ou codificação especial: Você pode prefixar variáveis de membro privadas com um sublinhado (_) para diferenciá-las de variáveis locais.
  • Alternativamente, use a palavra-chave this para distinguir entre variáveis de membro e locais no contexto e pule o prefixo. Campos e propriedades públicas geralmente não têm prefixos.
  • Alguns guias de estilo usam prefixos para variáveis de membro privadas (m_), constantes (k_) ou variáveis estáticas (s_), para que o nome possa revelar mais sobre a variável à primeira vista.
  • Muitos desenvolvedores evitam isso e confiam no Editor em vez disso. No entanto, nem todos os IDEs suportam destaque e codificação de cores, e algumas ferramentas não conseguem mostrar contexto rico de forma alguma. Considere isso ao decidir como (ou se) você aplicará prefixos em equipe.
  • Especifique (ou omita) modificadores de nível de acesso de forma consistente: Se você omitir o modificador de acesso, o compilador assumirá que o nível de acesso deve ser privado. Isso funciona bem, mas seja consistente em como você omite o modificador de acesso padrão.
  • Lembre-se de que você precisará usar protegido se quiser isso em uma subclasse mais tarde.

Enums

Enums são tipos de valor especiais definidos por um conjunto de constantes nomeadas. Por padrão, as constantes são inteiros, contando a partir de zero.

Use a notação Pascal para nomes e valores de enum. Você pode colocar enums públicos fora de uma classe para torná-los globais. Use um substantivo singular para o nome do enum.

Observação: Enums bitwise marcados com a System.FlagsAttribute são a exceção a esta regra. Você normalmente os pluraliza, pois representam mais de um tipo.

Classes e interfaces

Siga estas regras padrão ao nomear suas classes e interfaces:

Use substantivos em notação Pascal para nomes de classes: Isso manterá suas classes organizadas.

Se você tiver um MonoBehaviour em um arquivo, o nome do arquivo de origem deve corresponder: Você pode ter outras classes internas no arquivo, mas apenas um MonoBehaviour deve existir por arquivo.

Prefixe os nomes das interfaces com um "I" maiúsculo: Siga isso com um adjetivo que descreva a funcionalidade.

Métodos

Em C#, cada instrução executada é realizada no contexto de um método.

Os métodos realizam ações, então aplique essas regras para nomeá-los adequadamente:

Comece o nome com um verbo: Adicione contexto se necessário (por exemplo, ObterDireção, EncontrarAlvo, etc.)

Use camel case para parâmetros: Formate os parâmetros passados para o método como variáveis locais.

Métodos que retornam bool devem fazer perguntas: Assim como as variáveis Booleanas, prefixe os métodos com um verbo se eles retornarem uma condição verdadeira-falsa. Isso os formula na forma de uma pergunta (por exemplo, OJogoTerminou, ComeçouTurno).

Observação: Os termos “função” e “método” são frequentemente usados de forma intercambiável no desenvolvimento Unity. No entanto, como você não pode escrever uma função sem incorporá-la em uma classe em C#, “método” é o termo correto.

Eventos e manipuladores de eventos

Eventos em C# implementam o padrão observador. Esse padrão de design de software define uma relação na qual um objeto, o sujeito (ou publicador), pode notificar uma lista de objetos dependentes chamados observadores (ou assinantes). Assim, o sujeito pode transmitir mudanças de estado para seus observadores sem acoplar fortemente os objetos envolvidos.

Vários esquemas de nomenclatura existem para eventos e seus métodos relacionados no sujeito e observadores. Experimente as práticas nas seções a seguir.

Use verbos

Nomeie o evento com uma frase verbal. Certifique-se de escolher uma que comunique a mudança de estado com precisão.

Use o presente ou o particípio passado para indicar o estado dos eventos como antes ou depois. Por exemplo, especifique “AbrindoPorta” para um evento antes de abrir uma porta e “PortaAberta” para um evento depois.

Use System.Action

Use o delegado System.Action para eventos. Na maioria dos casos, o delegado Action pode lidar com os eventos necessários para a jogabilidade.

Você pode passar até 16 parâmetros de entrada de diferentes tipos com um tipo de retorno void. Usar o delegado pré-definido economiza código.

Observação: Você também pode usar os delegados EventHandler ou EventHandler. Concorde como uma equipe sobre como todos devem implementar eventos.

Prefixe o método com "On"

Prefixe o método que gera o evento (no sujeito) com “On.” O sujeito que invoca o evento normalmente o faz a partir de um método prefixado com “On” (por exemplo, “OnOpeningDoor” ou “OnDoorOpened”).

Prefixe com o nome do sujeito e um sublinhado

Prefixe o método de manipulação de eventos (no observador) com o nome do sujeito e um sublinhado (_). Se o sujeito se chama “GameEvents,” seus observadores podem ter um método chamado “GameEvents_OpeningDoor” ou “GameEvents_DoorOpened.”

Decida um esquema de nomenclatura consistente para sua equipe e implemente essas regras em seu guia de estilo.

Observação: Este “método de manipulação de eventos” não deve ser confundido com o delegado EventHandler.

Use EventArgs com cuidado

Crie EventArgs personalizados apenas se necessário. Se você precisar passar dados personalizados para seu Evento, crie um novo tipo de EventArgs, seja herdado de System.EventArgs ou de uma struct personalizada.

Espaços de nomes

Use namespaces para garantir que suas classes, interfaces, enums, etc. não entrem em conflito com aquelas já existentes de outros namespaces, ou do Namespace Global. Namespaces também podem evitar conflitos com ativos de terceiros da Unity Asset Store ou outras cenas de teste que não farão parte da versão final do projeto.

Ao aplicar namespaces:

Use a notação Pascal sem símbolos especiais ou sublinhados.

Adicione uma diretiva using no topo do arquivo para evitar digitação repetida do prefixo do namespace.

Crie sub-namespaces também. Use o operador ponto (.) para delimitar os níveis de nome, permitindo que você organize seus scripts em categorias hierárquicas. Por exemplo, você pode criar “MyApplication.GameFlow”, “MyApplication.AI”, “MyApplication.UI” e assim por diante, para conter diferentes componentes lógicos do seu jogo.

Prefixos

No código, essas classes são referidas como Enemy.Controller1 e Enemy.Controller2, respectivamente. Adicione uma linha using para economizar digitação do prefixo (por exemplo, using Enemy;).

Quando o compilador encontra os nomes das classes Controller1 e Controller2, ele entende que você quer dizer Enemy.Controller1 e Enemy.Controller2.

Se o script precisar se referir a classes com o mesmo nome de diferentes namespaces, use o prefixo para diferenciá-las. Por exemplo, se você tiver uma classe Controller1 e Controller2 no namespace Player, você pode escrever Player.Controller1 e Player.Controller2 para evitar conflitos. Caso contrário, o compilador relatará um erro.

Obtenha mais dicas de estilo de código

Saiba mais sobre formatação geral aqui ou confira o e-book completo. Você também pode explorar nosso exemplo de guia de estilo de código.