Depois de programar as mecânicas principais do seu personagem e construir os primeiros níveis, chega um momento em que seu jogo precisa de uma “porta de entrada”, um ponto de partida claro para o jogador. Este é o papel do menu principal.
Ele não é apenas uma tela com botões; é o primeiro contato do jogador com seu universo, o local que define o tom e a primeira impressão da experiência que está por vir. O sistema de UI da Unity é incrivelmente poderoso, mas seus componentes — Canvas, RectTransform, EventSystem — podem parecer intimidantes no começo.
Neste guia detalhado, vamos desmistificar esses elementos e construir, passo a passo, um menu principal simples, mas totalmente funcional e responsivo, com botões para “Iniciar Jogo”, “Opções” e “Sair”.
1. Os Pilares da UI da Unity: Uma Breve Teoria
Antes de criar nosso primeiro botão, é importante entender os três componentes que formam a base de toda UI na Unity.
- O Canvas: Pense nele como uma tela de pintura transparente posicionada em frente à câmera. Todos os elementos de interface (botões, textos, imagens) devem ser filhos de um Canvas para serem renderizados na tela. A sua configuração mais importante é o Canvas Scaler, que define como a UI se adapta a diferentes resoluções de tela.
- O EventSystem: Criado automaticamente junto com o Canvas, o EventSystem é o “cérebro” que processa os inputs do jogador. É ele que detecta cliques, toques e movimentos do mouse e os traduz em eventos, como o “OnClick” de um botão. Você só precisa de um por cena.
- O RectTransform: Diferente dos objetos de jogo normais que usam um componente
Transform
, os elementos de UI usam umRectTransform
. Ele possui propriedades adicionais como “âncoras” e “pivôs”, que são cruciais para criar interfaces responsivas que se comportam bem em qualquer proporção de tela.
2. Construindo a Estrutura Visual do Menu
Com a teoria em mente, vamos à prática.
Passo 2.1: Crie a Cena e o Canvas É uma boa prática ter o menu principal em sua própria cena.
- Crie uma nova cena (
File > New Scene
) e salve-a comoMenuPrincipal
. - Na Hierarquia, clique com o botão direito e vá em
UI > Canvas
. Isso criará o Canvas e um EventSystem automaticamente.
Passo 2.2: Configure a Responsividade (Canvas Scaler) Este é o passo mais importante para que seu menu não “quebre” em monitores diferentes.
- Selecione o
Canvas
na Hierarquia. - No Inspector, encontre o componente
Canvas Scaler
. - Mude a opção UI Scale Mode para Scale With Screen Size.
- Defina uma Reference Resolution, como
1920
para X e1080
para Y. Isso significa que você desenvolverá a UI nessa resolução, e a Unity a escalará proporcionalmente para outras.
Passo 2.3: Adicione um Título
- Clique com o botão direito no
Canvas
na Hierarquia e vá emUI > Text - TextMeshPro
. Se for a primeira vez, a Unity pedirá para importar os “TMP Essentials”. Clique em importar. O TextMeshPro (TMP) é o sistema de texto moderno da Unity e oferece uma qualidade muito superior. - Selecione o objeto de texto, nomeie-o como “TextoTitulo”.
- No Inspector, dentro do componente
TextMeshPro - Text
, escreva o nome do seu jogo. Ajuste a fonte, o tamanho (Font Size
), a cor e o alinhamento como desejar. Use as âncoras doRectTransform
para posicioná-lo no topo da tela.
3. Adicionando os Botões Interativos
Passo 3.1: Crie e Organize os Botões
- Clique com o botão direito no
Canvas
e vá emUI > Button - TextMeshPro
. Nomeie o objeto como “BotaoIniciar”. Mude o texto do objeto filho para “Iniciar Jogo”. - Duplique este botão (
Ctrl+D
) duas vezes para criar os botões “Opções” e “Sair”. Renomeie os objetos e os textos de acordo. - Dica de Profissional: Para organizar os botões verticalmente de forma automática e responsiva, crie um objeto vazio dentro do Canvas chamado “PainelBotoes”. Adicione a ele o componente
Vertical Layout Group
. Arraste seus três botões para dentro deste objeto. Agora você pode controlar o espaçamento, o alinhamento e o tamanho de todos os botões de uma só vez através do componenteVertical Layout Group
.
4. Dando Vida aos Botões com Scripts
A parte visual está pronta. Agora, vamos fazer os botões funcionarem.
Passo 4.1: Crie o Gerenciador do Menu
- Crie um objeto vazio na cena chamado “MenuManager”.
- Crie um novo script chamado
MenuPrincipalManager
e anexe-o a este objeto.
Passo 4.2: Escreva as Funções Abra o script MenuPrincipalManager
e adicione o seguinte código:
using UnityEngine;
using UnityEngine.SceneManagement; // Essencial para gerenciar cenas!
public class MenuPrincipalManager : MonoBehaviour
{
public void IniciarJogo()
{
// Carrega a cena do seu jogo.
// Certifique-se de que o nome da cena está exatamente igual.
SceneManager.LoadScene("Fase1"); // Mude "Fase1" para o nome da sua cena de jogo
}
public void AbrirOpcoes()
{
// Lógica para abrir o painel de opções
Debug.Log("Função AbrirOpcoes chamada!");
}
public void SairDoJogo()
{
Debug.Log("Saindo do jogo...");
Application.Quit();
// A linha abaixo só funciona no Editor da Unity, para testar o botão.
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#endif
}
}
Importante: Para o SceneManager.LoadScene()
funcionar, você precisa adicionar suas cenas às “Build Settings”. Vá em File > Build Settings
, clique em “Add Open Scenes” com a cena do menu aberta, e depois arraste a sua cena de jogo para a lista.
Passo 4.3: Conecte as Funções aos Botões Este é o passo final.
- Selecione o seu “BotaoIniciar” na Hierarquia.
- No Inspector, encontre o componente
Button
. Você verá uma seção chamadaOn Click ()
. - Clique no ícone
+
no canto inferior direito desta seção. - Arraste o objeto
MenuManager
(que contém seu script) da Hierarquia para o campo que dizNone (Object)
. - No menu dropdown que aparece (inicialmente em
No Function
), selecioneMenuPrincipalManager
e, na lista que se abre, escolha a sua funçãoIniciarJogo()
. - Repita o processo para os botões “Opções” e “Sair”, conectando-os às suas respectivas funções (
AbrirOpcoes
eSairDoJogo
).
Conclusão
E está pronto! Ao apertar “Play”, você terá um menu principal profissional, responsivo e totalmente funcional.
Percorremos os conceitos fundamentais do sistema de UI, aprendemos a usar componentes de layout para organizar os elementos e, o mais importante, conectamos a interface visual à lógica do nosso código.
Criar um bom menu não é apenas uma etapa técnica; é o primeiro sinal de respeito pela experiência do jogador. É um passo que mostra que você está pensando no seu projeto como um produto completo, não apenas como um protótipo.
Quer ver um guia em vídeo construindo menus e outras interfaces? Este é o tipo de conteúdo prático que adoramos criar no nosso canal no YouTube, a PERAI DEV. Inscreva-se e continue evoluindo suas habilidades com a gente!