Creazione di un menu di pausa in Unity

L'aggiunta di un menu di pausa è fondamentale per qualsiasi gioco Unity, poiché offre ai giocatori un momento per respirare e accedere alle opzioni. Questo tutorial ti guida attraverso la sua creazione, inclusi esempi di codice e spiegazioni.

1. Progetta il tuo menu di pausa

  • Disegna il layout desiderato, inclusi i pulsanti (Riprendi, Opzioni, Esci).
  • Prendi in considerazione l'utilizzo di pannelli trasparenti per una sensazione meno invadente.

2. Crea la tela

  • Nel pannello Gerarchia, fai clic con il pulsante destro del mouse e scegli "UI -> Canvas".
  • Impostare "Render Mode" su "Screen Space - Overlay" per un posizionamento corretto.

3. Costruisci il pannello dei menu

  • Sotto la tela, fai clic con il pulsante destro del mouse e scegli "UI -> Panel".
  • Ridimensiona e posiziona il pannello in base al tuo design.
  • Rinominalo in "PauseMenu" per una migliore organizzazione.

4. Aggiungi pulsanti

  • Fare clic con il tasto destro nel pannello PauseMenu e scegliere "UI -> Button."
  • Ripeti per ciascun pulsante desiderato (Riprendi, Opzioni, Esci).
  • Nominali in modo appropriato (ad esempio, "ResumeButton").
  • Personalizza il testo, le dimensioni e la posizione.

5. Scripting della logica

  • Crea un nuovo script C# denominato "PauseMenu.cs."
  • Allega lo script all'oggetto PauseMenu nella Gerarchia.

6. Funzionalità di 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. Interazioni con i pulsanti

  • Nella finestra Impostazioni, seleziona ciascun pulsante.
  • Fai clic sul "+" accanto a "OnClick" e trascina lo script 'PauseMenu' nel campo.
  • Scegli la funzione appropriata (ad esempio, ResumeGame per ResumeButton).

8. Tocchi aggiuntivi

  • Personalizza gli stili dei pulsanti, aggiungi effetti sonori o implementa i menu delle opzioni.
  • Prendi in considerazione l'utilizzo di prefabbricati per la riutilizzabilità tra le scene.

Conclusione

Speriamo che questa guida ti abbia dato un vantaggio nella creazione di un menu di pausa funzionante in Unity. Ricorda di espandere questa base aggiungendo più funzionalità e adattandola alle esigenze specifiche del tuo gioco.