Crear un menú de pausa en Unity

Agregar un menú de pausa es crucial para cualquier juego Unity, ya que brinda a los jugadores un momento para respirar y acceder a las opciones. Este tutorial lo guía a través de su creación, incluidos ejemplos de código y explicaciones.

1. Diseña tu menú de pausa

  • Dibuja el diseño que desees, incluidos los botones (Reanudar, Opciones, Salir).
  • Considere usar paneles transparentes para una sensación menos intrusiva.

2. Crear el lienzo

  • En el panel Jerarquía, haga clic derecho y elija "UI -> Canvas".
  • Configure "Render Mode" en "Screen Space - Overlay" para un posicionamiento adecuado.

3. Construya el panel de menú

  • Debajo del Lienzo, haga clic derecho y elija "UI -> Panel".
  • Cambie el tamaño y coloque el panel según su diseño.
  • Cambie el nombre a "PauseMenu" para una mejor organización.

4. Agregar botones

  • Haga clic derecho dentro del panel PauseMenu y elija "UI -> Button."
  • Repita para cada botón que desee (Reanudar, Opciones, Salir).
  • Nómbrelos apropiadamente (p. ej., "ResumeButton").
  • Personaliza su texto, tamaño y posición.

5. Scripting de la lógica

  • Cree un nuevo script C# llamado "PauseMenu.cs."
  • Adjunte el script al objeto PauseMenu en la Jerarquía.

6. Funcionalidad 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. Interacciones de botones

  • En la ventana del inspector, seleccione cada botón.
  • Haga clic en "+" junto a "OnClick" y arrastre el script 'PauseMenu' al campo.
  • Elija la función adecuada (por ejemplo, ResumeGame para ResumeButton).

8. Toques adicionales

  • Personalice estilos de botones, agregue efectos de sonido o implemente menús de opciones.
  • Considere usar prefabs para reutilizar entre escenas.

Conclusión

Con suerte, esta guía le dio una ventaja para crear un menú de pausa que funcione en Unity. Recuerde ampliar esta base agregando más funciones y adaptándola a las necesidades específicas de su juego.

Artículos sugeridos
Tutorial del menú principal de Unity
Crear una interfaz de usuario de pantalla ganadora en Unity
Crear un efecto de filtro de cinta VHS en Unity
Trabajar con el sistema UI de Unity
Cómo crear un juego de terror en Unity
Consejos esenciales de posprocesamiento para Unity
Creando simuladores de vuelo en Unity