Tworzenie menu pauzy w Unity

Dodanie menu pauzy ma kluczowe znaczenie w każdej grze Unity, zapewniając graczom chwilę oddechu i dostęp do opcji. Ten samouczek przeprowadzi Cię przez proces jego tworzenia, łącznie z przykładami kodu i objaśnieniami.

1. Zaprojektuj swoje menu pauzy

  • Naszkicuj żądany układ, łącznie z przyciskami (Wznów, Opcje, Zakończ).
  • Rozważ użycie przezroczystych paneli, aby uzyskać mniej inwazyjne wrażenie.

2. Utwórz płótno

  • W panelu Hierarchia kliknij prawym przyciskiem myszy i wybierz "UI -> Canvas".
  • Ustaw "Render Mode" na "Screen Space - Overlay", aby zapewnić prawidłowe pozycjonowanie.

3. Zbuduj panel menu

  • W obszarze Canvas kliknij prawym przyciskiem myszy i wybierz "UI -> Panel".
  • Zmień rozmiar i położenie panelu zgodnie ze swoim projektem.
  • Zmień jego nazwę na "PauseMenu" dla lepszej organizacji.

4. Dodaj przyciski

  • Kliknij prawym przyciskiem myszy w panelu PauseMenu i wybierz "UI -> Button."
  • Powtórz tę czynność dla każdego żądanego przycisku (Wznów, Opcje, Zakończ).
  • Nazwij je odpowiednio (np. "ResumeButton").
  • Dostosuj ich tekst, rozmiar i położenie.

5. Skryptowanie logiki

  • Utwórz nowy skrypt C# o nazwie "PauseMenu.cs."
  • Dołącz skrypt do obiektu PauseMenu w Hierarchii.

6. Wstrzymaj funkcjonalność

'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. Interakcje przycisków

  • W oknie Inspektora zaznacz każdy przycisk.
  • Kliknij „+” obok "OnClick" i przeciągnij skrypt 'PauseMenu' na pole.
  • Wybierz odpowiednią funkcję (np. ResumeGame dla ResumeButton).

8. Dodatkowe dotknięcia

  • Dostosuj style przycisków, dodaj efekty dźwiękowe lub zaimplementuj menu opcji.
  • Rozważ użycie prefabs w celu umożliwienia ponownego użycia w różnych scenach.

Wniosek

Mamy nadzieję, że ten przewodnik dał ci dobry początek w tworzeniu działającego menu pauzy w Unity. Pamiętaj, aby rozszerzyć tę bazę, dodając więcej funkcji i dostosowując ją do konkretnych potrzeb swojej gry.

Sugerowane artykuły
Tworzenie efektu filtra taśmy VHS w Unity
Praca z systemem interfejsu użytkownika Unity
Samouczek menu głównego dla Unity
Tworzenie prostego modułu cieniującego trawę w Unity
Tworzenie interfejsu użytkownika ekranu zwycięzcy w Unity
Tworzenie symulatorów lotu w Unity
Moc tekstur zastępczych do prototypowania w jedności