Voltar para o Blog
Quest Log

Qual Linguagem a Unity Usa? C# Explicado pra Começar

Tela do editor da Unity ao lado de um script em C# com um MonoBehaviour

Qual linguagem a Unity usa? C#, a linguagem oficial de script. Veja o que é C#, por que a Unity escolheu e como é um script na prática.

Ferramenta:Unity

Resposta direta, porque é o que você veio buscar: a Unity usa C# (lê-se "C sharp") como linguagem oficial de script. Todo o código de jogo que você escreve na Unity hoje, movimentação de personagem, lógica de inimigo, menus, sistema de vida, salvamento, sai em C#. Não existe mais escolha de linguagem na engine moderna: é C# e ponto. Se você viu por aí que a Unity usava JavaScript, isso é história antiga, e já volto nesse ponto.

Agora que a pergunta principal está respondida, vale entender o resto, porque "qual linguagem a Unity usa" quase nunca é a única dúvida de quem está começando. Você provavelmente quer saber o que é C#, por que a Unity apostou nessa linguagem, como um script de verdade se parece na prática e se dá pra fazer jogo sem programar. Vou resolver tudo isso aqui, sem enrolação.

O que é C# e por que a Unity usa essa linguagem

C# é uma linguagem de programação de propósito geral criada pela Microsoft no início dos anos 2000. Ela faz parte do ecossistema .NET e é usada muito além de jogos: tem backend de aplicação web, ferramentas internas de empresa, software corporativo, aplicativo de desktop. É uma linguagem madura, com décadas de documentação, e isso conta muito quando você trava num erro às três da manhã e precisa achar a resposta.

Algumas características de C# que importam pra você como iniciante:

  • É de tipagem estática. Quando você declara int vida, aquilo é um número inteiro e o compilador reclama na hora se você tentar botar texto ali. Isso pega erro cedo, antes de rodar o jogo.
  • É orientada a objetos. Você organiza o código em classes, o que casa perfeitamente com a ideia de "cada coisa no jogo é um objeto" (o player, o inimigo, a bala).
  • É compilada e tem performance sólida para a imensa maioria dos jogos indie e mobile.

Por que a Unity escolheu C#? Alguns motivos práticos. A linguagem tem um ótimo equilíbrio entre produtividade e desempenho: você escreve rápido e o resultado roda bem. O ecossistema .NET já era enorme quando a Unity decidiu padronizar, então havia mão de obra e material disponível. E a tipagem estática ajuda a engine a oferecer autocomplete e checagem de erro decentes no editor de código. No fim, foi uma aposta em estabilidade e mercado, não em moda.

Um detalhe histórico que confunde muita gente: antigamente a Unity suportava outras opções além de C#. A mais conhecida era o UnityScript, uma linguagem parecida com JavaScript criada pela própria Unity. Ele foi oficialmente descontinuado em 2017 e removido das versões modernas. Se você achar um tutorial de 2015 ensinando UnityScript, feche a aba: aquele código não roda mais. Hoje, C# é a única linguagem de script suportada.

Como é um script de verdade na Unity

Na Unity, código de jogo mora em componentes que você anexa aos objetos da cena. O tipo mais comum desses componentes é o MonoBehaviour, uma classe base da engine. Quando você cria um script novo, a Unity já te entrega um esqueleto com dois métodos especiais: Start() e Update().

  • Start() roda uma vez, no momento em que o objeto entra em cena. É onde você prepara coisas: valor inicial de vida, referências, estado de partida.
  • Update() roda uma vez por frame, o tempo todo. É onde fica a lógica que precisa checar input ou mexer com o jogo continuamente, como movimentação.

Veja um exemplo curto e real de um script que move um objeto para a direita e lê o espaço do teclado:

using UnityEngine;

public class MovimentoJogador : MonoBehaviour
{
    public float velocidade = 5f;

    void Start()
    {
        Debug.Log("Jogador pronto para jogar.");
    }

    void Update()
    {
        // Move o objeto para a direita, independente do frame rate.
        transform.Translate(Vector3.right * velocidade * Time.deltaTime);

        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("Pulou!");
        }
    }
}

Repare em algumas coisas desse trecho, porque elas resumem o dia a dia na Unity. A classe herda de MonoBehaviour, o que permite anexá-la a um objeto da cena. A variável velocidade é public, então ela aparece no Inspector da Unity e você consegue ajustar o valor sem tocar no código. O Time.deltaTime garante que o movimento seja o mesmo num PC rápido e num mais lento. E Input.GetKeyDown é a API da engine para ler o teclado.

Essa é a parte que vale deixar clara: o C# aqui é o mesmo C# de qualquer lugar (variáveis, if, classes, funções). O que muda é a API da Unity em volta, as classes como Transform, Vector3, Input e Time. Aprender a linguagem e aprender a engine são duas trilhas que você percorre junto, mas são coisas distintas. Boa parte do que você aprende em C# viaja com você pra fora da Unity; a API da engine, não.

Próximo nível
Quer aprender isso na prática?

No CursoGame.Dev você sai dos tutoriais soltos e constrói jogos publicáveis, com trilha progressiva, quests práticas e feedback real.

Conhecer a plataforma
+500 alunos4.9/5Garantia 7 dias

E o Visual Scripting? Dá pra fazer jogo sem programar?

A Unity tem, sim, um sistema de Visual Scripting (o antigo Bolt, que a Unity comprou e integrou à engine). Nele você monta a lógica conectando nós numa tela, em vez de digitar código. Visualmente lembra um fluxograma: "quando o jogador colide com isto, faça aquilo".

Isso é útil, e eu não vou fingir que não é. Visual Scripting ajuda a prototipar uma ideia rápido, serve bem para designers e artistas que querem testar mecânicas sem escrever C#, e pode ser um primeiro contato menos intimidador com lógica de programação. Mas aqui vai a parte honesta, que muito curso omite: Visual Scripting é um complemento, não um substituto de aprender a programar.

Os motivos são práticos. A esmagadora maioria dos tutoriais, pacotes da Asset Store, respostas de fórum e exemplos oficiais parte do pressuposto de que você escreve C#. Projetos maiores ficam difíceis de ler e manter em nós visuais (vira uma teia de espaguete). E, se a sua meta inclui trabalhar na área, as vagas pedem C#, não blocos. O Visual Scripting resolve o começo, mas ele te empurra pra programar de verdade mais cedo do que você imagina.

Em outras palavras: dá pra arranhar um protótipo sem digitar código, mas não dá pra fugir da programação se você leva a sério fazer jogos. A boa notícia é que esse é um obstáculo que se vence com prática, não com talento mágico.

C# na Unity comparado com GDScript na Godot

Se você ainda está decidindo por qual engine começar, essa comparação de linguagem costuma pesar. A Godot, principal alternativa gratuita e open source à Unity, tem como linguagem principal o GDScript, que foi feito pra ser amigável a iniciante. A sintaxe lembra Python e dispensa boa parte da cerimônia do C#.

Compare o mesmo tipo de lógica. Em C# na Unity, declarar uma variável tipada é assim:

public int vida = 100;

Em GDScript tipado na Godot, fica assim:

var vida: int = 100

O GDScript permite até escrever var vida = 100 sem declarar o tipo, o que reduz atrito no início (embora tipar seja a boa prática, inclusive por performance). Essa leveza faz do GDScript uma porta de entrada mais suave pra quem nunca programou. Em compensação, GDScript só existe dentro da Godot: a sintaxe não transfere pra lugar nenhum. O C# da Unity, não: ele te serve na Unity, no backend .NET e em um monte de outro contexto do mercado.

Essa é a troca central. GDScript é mais gentil no primeiro dia; C# é mais útil no quinto ano. Nenhum dos dois está errado, depende do seu objetivo. Se você quer destrinchar essa decisão com calma, eu escrevi um comparativo dedicado em C# vs GDScript no Godot, e um panorama maior das duas engines em Godot vs Unity: comparação completa. Se o seu foco é especificamente jogo 2D, vale também o guia de melhor engine para jogos 2D antes de fechar a escolha.

Vale a pena aprender C# pela Unity pensando em emprego?

Vale, e essa talvez seja a parte mais subestimada da resposta. Quando você aprende C# pra fazer jogos na Unity, não está só aprendendo a fazer jogos. Está aprendendo uma das linguagens mais demandadas do mercado de software, que aparece em vaga de desenvolvedor .NET, ferramenta interna de empresa, aplicação corporativa e, claro, estúdio de jogos.

A Unity domina o mercado mobile e uma fatia enorme do indie, então C# é também a aposta mais segura dentro da própria área de games. E como a linguagem em si é a mesma fora da engine, o esforço que você investe aprendendo if, loops, classes e estruturas de dados em C# não é descartável quando você muda de contexto. Muda a API em volta, a base continua valendo. É o que eu chamo de investimento líquido: pouco do que você estuda vira conhecimento morto.

Pra fechar: a Unity usa C#, essa é a linguagem que você precisa aprender se quer fazer jogos na engine. O Visual Scripting ajuda no começo, mas não te tira da necessidade de programar. E aprender C# de verdade, entender a lógica, não só decorar tutorial, é o que separa quem assiste vídeo de quem termina e publica um jogo. Se você quer continuar explorando a engine, dá uma olhada no nosso hub de conteúdo sobre Unity, onde reunimos os guias por tema.

Perguntas frequentes

Qual linguagem a Unity usa?

A Unity usa C# (lê-se "C sharp") como linguagem oficial de script. Todo o código de jogo que você escreve no dia a dia, movimentação, input, UI, inimigos, salvamento, é em C#. Houve no passado o UnityScript (um JavaScript da casa), mas ele foi descontinuado em 2017 e não existe mais nas versões atuais. Hoje é C# e só C#.

A Unity ainda usa JavaScript ou o antigo UnityScript?

Não. O UnityScript, que lembrava JavaScript, foi oficialmente descontinuado em 2017 e removido das versões modernas da engine. Se você encontrar um tutorial antigo ensinando UnityScript, ignore: o código não roda mais. A única linguagem de script suportada hoje é C#.

Preciso saber programar para usar a Unity?

Para fazer um jogo de verdade, sim. A Unity tem um sistema de Visual Scripting (o antigo Bolt) que monta lógica com blocos e conexões, útil para prototipar ou para designers, mas ele é um complemento, não um substituto de aprender C#. Quase todo tutorial, pacote da Asset Store e vaga de emprego parte do pressuposto de que você escreve C#.

C# da Unity é difícil para iniciante?

C# é uma linguagem de tipagem estática, então ela exige um pouco mais de cerimônia que algo como GDScript ou Python no começo. Em compensação, a estrutura clara ajuda a pegar erro cedo e o volume de material em português e inglês é enorme. Para a maioria das pessoas o gargalo não é a linguagem, é entender lógica de programação e escopo de projeto.

Aprender C# na Unity serve para arrumar emprego?

Serve, e bem. C# é uma das linguagens mais usadas no mercado, tanto em jogos (a Unity domina mobile e boa parte do indie) quanto fora deles (backend .NET, ferramentas, aplicações corporativas). A sintaxe e a lógica que você aprende na Unity transferem direto para esses outros contextos, o que torna o estudo um investimento líquido.

Qual a diferença entre o C# da Unity e o C# "normal"?

É a mesma linguagem. A diferença é que, dentro da Unity, você usa a API da engine: classes como MonoBehaviour, GameObject, Transform e métodos como Start() e Update(). O C# em si (variáveis, if, for, classes, funções) é idêntico ao que você usaria num programa de console ou numa API web .NET.