Criando um menu de pausa no Unity

Adicionar um menu de pausa é crucial para qualquer jogo Unity, proporcionando aos jogadores um momento para respirar e acessar opções. Este tutorial orienta você durante sua criação, incluindo exemplos de código e explicações.

1. Projete seu menu de pausa

  • Esboce o layout desejado, incluindo botões (Continuar, Opções, Sair).
  • Considere o uso de painéis transparentes para uma sensação menos intrusiva.

2. Crie a tela

  • No painel Hierarquia, clique com o botão direito e escolha "UI -> Canvas".
  • Defina "Render Mode" como "Screen Space - Overlay" para posicionamento adequado.

3. Construa o painel do menu

  • No Canvas, clique com o botão direito e escolha "UI -> Panel".
  • Redimensione e posicione o painel de acordo com seu projeto.
  • Renomeie para "PauseMenu" para melhor organização.

4. Adicionar botões

  • Clique com o botão direito no painel PauseMenu e escolha "UI -> Button."
  • Repita para cada botão desejado (Continuar, Opções, Sair).
  • Nomeie-os apropriadamente (por exemplo, "ResumeButton").
  • Personalize seu texto, tamanho e posição.

5. Script da lógica

  • Crie um novo script C# chamado "PauseMenu.cs."
  • Anexe o script ao objeto PauseMenu na Hierarquia.

6. Funcionalidade de pausa

'PauseMenu.cs'

public class PauseMenu : MonoBehaviour
{
    public bool isPaused; // Flag to track pause state

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            // Toggle pause state on Escape key press
            isPaused = !isPaused;
            if (isPaused)
            {
                PauseGame();
            }
            else
            {
                ResumeGame();
            }
        }
    }

    void PauseGame()
    {
        // Set Time.timeScale to 0 to pause gameplay
        Time.timeScale = 0;
        // Make PauseMenu panel visible (activate its gameObject)
        PauseMenu.gameObject.SetActive(true);
    }

    void ResumeGame()
    {
        // Set Time.timeScale back to 1 to resume gameplay
        Time.timeScale = 1;
        // Hide PauseMenu panel (deactivate its gameObject)
        PauseMenu.gameObject.SetActive(false);
    }
}

7. Interações de botão

  • Na janela do Inspetor, selecione cada botão.
  • Clique no “+” ao lado de "OnClick" e arraste o script 'PauseMenu' para o campo.
  • Escolha a função apropriada (por exemplo, ResumeGame para ResumeButton).

8. Toques Adicionais

  • Personalize estilos de botões, adicione efeitos sonoros ou implemente menus de opções.
  • Considere usar prefabs para reutilização entre cenas.

Conclusão

Esperançosamente, este guia lhe deu uma vantagem inicial na construção de um menu de pausa funcional em Unity. Lembre-se de expandir essa base adicionando mais recursos e adaptando-a às necessidades específicas do seu jogo.

Artigos sugeridos
Tutorial do Menu Principal para Unity
Criando um efeito de filtro de fita VHS no Unity
Criando uma tela de carregamento no Unity
Trabalhando com o sistema UI do Unity
Criando um shader de grama simples no Unity
Criando uma UI de tela vencedora no Unity
Criando Simuladores de Voo no Unity