• 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

Scripts em Unity para programadores experientes

Para programadores que não conhecem Unity

Em Unity, você pode usar scripts para desenvolver basicamente todas as partes de um jogo ou outro conteúdo interativo em tempo real. O Unity oferece suporte a scripts em C#e há duas maneiras principais para arquitetar seus scripts em C# no Unity: design orientado a objetos, que é a abordagem tradicional e mais usada, e design orientado a dados, que agora é possível em Unity, para casos de uso específicos, por meio do nosso novo Data-Oriented Technology Stack (DOTS) multithread de alto desempenho.

  • Você está chegando ao Unity com uma base em C++?
  • GameObjects e componentes em Unity
  • Componentes de script em Unity
  • Benefícios do design orientado a dados com DOTS
  • Aproveite ao máximo o hardware moderno
  • Depuração em Unity
  • Back-ends de script em Unity
  • Personalizar o Unity ampliando o Editor

Você está chegando ao Unity com uma base em C++?

O Unity oferece suporte a C#, uma linguagem padrão do setor com algumas semelhanças a Java ou C++

Comparada com C++, C# é mais fácil de aprender. Além disso, é uma “linguagem gerenciada”, o que significa que ela gerencia a memória automaticamente para você: alocação/desalocação de memória, tratamento de vazamentos de memória e assim por diante.

No geral, prefere-se C# a C++ se você quiser desenvolver um jogo primeiro e, depois, lidar com aspectos mais avançados de programação.

Saiba mais
Consulte a documentação da API Unity
GameObjects e componentes em Unity

GameObjects e componentes em Unity

Toda a jogabilidade e interatividade desenvolvidas no Unity são construídas em três blocos fundamentais: GameObjects, componentes e variáveis.

Qualquer objeto em um jogo é um GameObject: personagens, luzes, efeitos especiais, adereço — tudo.

Componentes
GameObjects não conseguem fazer tudo sozinhos. Para que realmente se torne algo, é necessário conceder propriedades a um GameObject, o que é feito com a adição de componentes.

Componentes definem e controlam o comportamento dos GameObjects aos quais estão anexados. Um exemplo simples seria a criação de uma luz, que envolve a associação de um componente de luz a um GameObject (veja abaixo). Ou, adicionar um componente de corpo rígido a um objeto para que ele caia.

Os componentes têm qualquer quantidade de propriedades editáveis, ou variáveis, que podem ser ajustadas por meio da janela Inspector no Unity Editore/ou via script. No exemplo acima, algumas propriedades da luz são alcance, cor e intensidade.

Componentes de script em Unity

Os componentes integrados do Unity são muito versáteis, mas logo você perceberá que será necessário ir além do que oferecem para implementar sua própria lógica. Para fazer isso, use scripts a fim de implementar sua própria lógica de jogo e comportamento, e adicione esses scripts como componentes a GameObjects. Cada script realiza sua conexão com os mecanismos internos do Unity implementando uma classe derivada da classe integrada chamada MonoBehaviour.

Seus componentes de script permitirão muitas coisas: acionar eventos de jogo, verificar colisões, aplicar física, responder às entradas do usuário e muito, muito mais. Consulte a API de scripts do Unity para obter mais informações.

Demonstração do Unity Megacity criada em DOTS

Benefícios do design orientado a dados com DOTS

O conceito tradicional de GameObject-componente continua a funcionar bem pois é fácil de entender para programadores e não programadores, e fácil de criar UIs intuitivas para ele. Adicione um componente RigidBody a um GameObject e ele começará a cair, ou um componente de luz a um GameObject e ele emitirá luz. E assim por diante.

No entanto, o sistema de componentes foi desenvolvido em uma estrutura orientada a objetos e cria desafios para desenvolvedores no que diz respeito ao gerenciamento do cache e da memória em hardware em evolução contínua.

Componentes e GameObjects são objetos de conteúdo intenso em C++. Todos os GameObjects têm um nome. Seus componentes são wrappers C# sobre componentes C++. Isso facilita o trabalho com eles, no entanto, isso pode afetar o desempenho pois eles acabam armazenados de maneira não estruturada. Esse objeto em C# pode estar em qualquer lugar na memória. O objeto em C++ também pode estar em qualquer lugar na memória. As coisas não são agrupadas em memória contínua. Toda vez que algo é carregado na CPU para processamento, tudo precisa ser buscado em diversos locais. Isso pode ser lento e ineficiente, exigindo, assim, muitas alternativas de otimização.

Para abordar esses problemas de desempenho, estamos reconstruindo a base fundamental do Unity com o Data-Oriented Technology Stack, ou DOTS (atualmente em pré-visualização), multithread de alto desempenho.

DOTS permite que os jogos utilizem em sua totalidade os processadores multinúcleo mais recentes de maneira eficiente. É composto por:

  • O Sistema de Trabalho em C# para executar código multithread de maneira eficiente.
  • O Sistema de Entidade de Componentes (ECS) para escrever códigos de alto desempenho por padrão.
  • O Compilador Burst para produzir código nativo altamente otimizado.

Em DOTS, o ECS é o novo sistema de componentes. O que é feito com um GameObject na abordagem tradicional orientada a objetos, é feito com uma entidade nesse novo sistema. Os componentes ainda são chamadas dessa maneira. A principal diferença está no layout de dados. Você pode ler mais sobre isso na postagem do blog “Em PONTOS: Sistema de Entidade de Componentes

Demonstração do Unity Megacity criada em DOTS

Aproveite ao máximo o hardware moderno

Além de ser uma maneira melhor para abordar a programação de jogos por motivos de design, usar o ECS coloca você em uma posição ideal para aproveitar o sistema de trabalho em C# e o Compilador Burst do Unity, permitindo que você obtenha todas as vantagens do hardware moderno atual.

Os sistemas multithread do DOTS permitem criar jogos que podem ser executados em uma variedade de hardware e desenvolver mundos de jogo mais completos com mais elementos e simulações mais complexas. Por sua vez, o código eficaz contribui para controle térmico e vida útil da bateria ótimos nos dispositivos móveis dos jogadores. Ao passar do design orientado a objetos para orientado a dados, pode ser mais fácil reutilizar seu código e a compreensão e o trabalho de outras pessoas nele.

Como parte da tecnologia do DOTS está em pré-visualização, é aconselhado que os desenvolvedores usem ele para solucionar um desafio de desempenho específico em seus projetos, em vez de desenvolver projetos inteiros nele. Confira a seção “Mais recursos” na parte inferior desta página a fim de obter links para recursos importantes do DOTS.

O Unity Profiler para otimização de desempenho

Depuração em Unity

Ajustar e depurar em Unity é eficiente pois todas as variáveis da jogabilidade são mostradas à medida que os desenvolvedores jogam, portanto, alterações podem ser feitas rapidamente, sem escrever uma única linha de código. O jogo pode ser pausado a qualquer momento ou você pode analisar o código, instrução por instrução.

Aqui estão alguns ótimos recursos para saber mais sobre a otimização em Unity:

O Profiler

O Profiler Analyzer

O Memory Profiler

Entender a otimização em Unity

Otimizar o desempenho gráfico

Melhores práticas gerais (incluindo dicas extensas sobre a otimização do sistema de UI do Unity)

Back-ends de script em Unity

.NET: .NET: Unity usou uma implementação do tempo de execução padrão Mono para scripts com suporte nativo a C#. Atualmente, o Unity é fornecido com Visual Studio para Mac em vez de MonoDevelop-Unity em macOS. No Windows, o Unity é fornecido com Visual Studio.

O tempo de execução de scripts .NET 4.6 em Unity oferece suporte a muitos dos novos recursos empolgantes em C# e depuração disponíveis em C# 6.0 e posterior. Isso também oferece uma ótima experiência IDE em C# para acompanhar os novos recursos em C#.

IL2CPP: IL2CPP: este é um back-end de scripts desenvolvido em Unity que pode ser usado como alternativa ao Mono ao compilar projetos para algumas plataformas. Quando você opta por compilar um projeto usando IL2CPP, o Unity converte código IL de scripts e organiza em código C++, antes de criar um arquivo binário nativo (por exemplo, .exe, apk, .xap) para sua plataforma escolhida.

Observe que IL2CPP é o único back-end de scripts disponível ao compilar para iOS e WebGL.

Personalizar o Unity ampliando o Editor

Como programador, você tem muita flexibilidade em Unity pois é capaz de ampliar o editor com suas próprias janelas personalizadas que se comportam igual ao Inspector, Scene ou qualquer outra janela integrada no editor padrão. Adicionar suas próprias ferramentas ao Unity oferece suporte aos fluxos de trabalho e às necessidades suas e de sua equipe, impulsionando a eficiência.

Mais recursos

Converter seu jogo para DOTS

Converter seu jogo para DOTS

Assista ao vídeo
Demonstração de Megacity desenvolvida em DOTS

Documentação DOTS

Saiba mais
Ferramentas e serviços incluídas na plataforma de desenvolvimento em Unity

Visão geral da plataforma 3D em tempo real do Unity

Saiba mais