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.