Cómo crear un menú de inicio funcional en Unity con C#

Uno de los primeros pasos en la creación de un videojuego profesional es diseñar un menú de inicio que permita al jugador comenzar una partida, acceder a opciones o salir del juego. En este tutorial te enseñaré a crear un menú básico pero funcional en Unity, usando UI Toolkit (Canvas UI) y scripts en C#. Este tipo de menú puede servir como base para cualquier género de juego.

Requisitos previos

Antes de comenzar, asegúrate de tener:

  • Unity instalado (versión 2020.3 o superior)
  • Un proyecto 2D o 3D creado
  • Conocimientos básicos sobre el editor de Unity y C#

Paso 1: Crear la escena del menú

  • Abre tu proyecto en Unity.
  • Ve a File > New Scene y crea una nueva escena llamada MainMenu.
  • Guarda la escena en la carpeta Scenes.

Paso 2: Diseñar la interfaz con Canvas

  • Haz clic derecho en el panel Hierarchy > UI > Canvas.
  • Dentro del Canvas, crea lo siguiente:
    • Un Text (TextMeshPro) como título del juego.
    • Un Button llamado PlayButton.
    • Un Button llamado OptionsButton.
    • Un Button llamado QuitButton.
  • Acomoda los botones verticalmente en el centro de la pantalla.
  • Personaliza los textos de cada botón:
    • Play
    • Options
    • Quit
      Consejo: puedes usar un Vertical Layout Group para alinear los botones fácilmente.

Paso 3: Crear el script del menú

  • En la carpeta Scripts, crea un script llamado MainMenu.cs.
  • Abre el script y escribe el siguiente código:
using UnityEngine;
using UnityEngine.SceneManagement;

public class MainMenu : MonoBehaviour
{
    public void PlayGame()
    {
        // Carga la escena principal del juego (ajusta el nombre)
        SceneManager.LoadScene("GameScene");
    }

    public void OpenOptions()
    {
        // Aquí puedes abrir el menú de opciones (por ahora, muestra un mensaje)
        Debug.Log("Opciones aún no implementadas.");
    }

    public void QuitGame()
    {
        // Cierra el juego
        Debug.Log("Saliendo del juego...");
        Application.Quit();
    }
}

Paso 4: Conectar los botones al script

  • Selecciona el Canvas o crea un GameObject vacío y asígnale el script MainMenu.cs.
  • Selecciona el botón PlayButton, ve al componente Button > On Click() y haz clic en el +.
  • Arrastra el GameObject con el script al campo vacío y elige MainMenu > PlayGame().
  • Repite el proceso para los botones:
    • OptionsButton > OpenOptions()
    • QuitButton > QuitGame()

Paso 5: Probar el menú

  • Crea una segunda escena llamada GameScene para que el botón “Play” pueda cargar algo.
  • Agrega ambas escenas al Build Settings:
    • Ve a File > Build Settings
    • Haz clic en “Add Open Scenes” para MainMenu y GameScene
    • Asegúrate de que MainMenu esté arriba (índice 0)
  • Ejecuta el juego desde la escena MainMenu y prueba los botones.

Paso 6: Personaliza tu menú

Una vez que la lógica está funcionando, puedes mejorar visualmente el menú:

  • Cambia fuentes y colores de los botones.
  • Agrega efectos de sonido al hacer clic.
  • Usa animaciones suaves con Animator para transiciones.

¿Y el menú de opciones?

Por ahora, el botón “Options” solo muestra un mensaje. Puedes ampliarlo con:

  • Control de volumen (AudioMixer)
  • Cambiar resolución de pantalla
  • Configurar controles

Crear un menú de inicio funcional en Unity es un paso clave para dar estructura a tu videojuego. Con solo unos pocos elementos UI y un script en C#, puedes ofrecer una experiencia más profesional y ordenada al jugador desde el primer momento.

Este tutorial es una base sólida sobre la cual puedes seguir construyendo menús más complejos, agregando pantallas de pausa, configuraciones, y mucho más.

¿Te gustaría que el próximo tutorial sea sobre cómo implementar un menú de pausa dentro del juego o cómo hacer un menú de opciones avanzado con sliders y configuraciones?

Deja un comentario