Skapa en pausmeny i Unity

Att lägga till en pausmeny är avgörande för alla Unity-spel, vilket ger spelarna en stund att andas och få tillgång till alternativ. Denna handledning guidar dig genom att skapa den, inklusive kodexempel och förklaringar.

1. Designa din pausmeny

  • Skissa din önskade layout, inklusive knappar (Fortsätt, Alternativ, Avsluta).
  • Överväg att använda transparenta paneler för en mindre påträngande känsla.

2. Skapa Canvas

  • I hierarkipanelen högerklickar du och väljer "UI -> Canvas".
  • Ställ in "Render Mode" på "Screen Space - Overlay" för korrekt positionering.

3. Bygg menypanelen

  • Högerklicka under Canvas och välj "UI -> Panel".
  • Ändra storlek och placera panelen enligt din design.
  • Byt namn på den till "PauseMenu" för bättre organisation.

4. Lägg till knappar

  • Högerklicka i PauseMeny-panelen och välj "UI -> Button."
  • Upprepa för varje knapp du vill ha (Fortsätt, Alternativ, Avsluta).
  • Namnge dem på lämpligt sätt (t.ex. "ResumeButton").
  • Anpassa deras text, storlek och position.

5. Skriva logiken

  • Skapa ett nytt C#-skript med namnet "PauseMenu.cs."
  • Bifoga skriptet till PauseMenu-objektet i hierarkin.

6. Pausfunktion

'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. Knappinteraktioner

  • Välj varje knapp i inspektörsfönstret.
  • Klicka på "+" bredvid "OnClick" och dra 'PauseMenu'-skriptet till fältet.
  • Välj lämplig funktion (t.ex. ResumeGame för ResumeButton).

8. Ytterligare inslag

  • Anpassa knappstilar, lägg till ljudeffekter eller implementera alternativmenyer.
  • Överväg att använda prefabs för återanvändbarhet över scener.

Slutsats

Förhoppningsvis gav den här guiden dig ett försprång med att bygga en fungerande pausmeny i Unity. Kom ihåg att utöka den här basen genom att lägga till fler funktioner och skräddarsy den efter dina specifika spelbehov.