Cambiar de escena al presionar un botón en Unity es una de las funciones más básicas y esenciales en cualquier juego. En este tutorial, aprenderás a:
✅ Cargar una nueva escena al hacer clic en un botón.
✅ Asegurar que las escenas estén configuradas en Unity correctamente.
🔹 1. Configurar las Escenas en Unity
Antes de programar el cambio de escena, debemos asegurarnos de que Unity reconozca las escenas que queremos cambiar.
📌 Paso 1: Agregar las Escenas a Build Settings
- Abre Unity y ve a
File > Build Settings
. - Asegúrate de que las escenas están en la lista de
Scenes In Build
.- Si no están, presiona
Add Open Scenes
para agregarlas.
- Si no están, presiona
- Ordena las escenas correctamente:
Escena 0
→ Menú PrincipalEscena 1
→ Nivel 1Escena 2
→ Nivel 2
(El número de índice es importante para el código)
🔹 2. Crear el Script para Cambiar de Escena
Ahora crearemos un script para manejar los cambios de escena.
📌 Paso 2: Crear un Script CambioDeEscena.cs
- En la carpeta
Scripts
, crea un nuevo script (Right Click > Create > C# Script
). - Nómbralo
CambioDeEscena
y ábrelo. - Copia este código:
using UnityEngine;
using UnityEngine.SceneManagement; // Necesario para cambiar escenas
public class CambioDeEscena : MonoBehaviour
{
// Método para cargar una escena por su índice
public void CargarEscena(int indiceEscena)
{
SceneManager.LoadScene(indiceEscena);
}
// Método para cargar una escena por su nombre
public void CargarEscenaPorNombre(string nombreEscena)
{
SceneManager.LoadScene(nombreEscena);
}
}
🔹 3. Configurar el Botón para Cambiar de Escena
Ahora aplicaremos el script a un botón para que funcione.
📌 Paso 3: Crear el Botón
- En la jerarquía (
Hierarchy
), ve aGameObject > UI > Button - TextMeshPro
. - Nómbralo
BotonJugar
. - En el
Inspector
, cambia su texto a"Jugar"
.
📌 Paso 4: Asignar el Script al Botón
- Crea un GameObject vacío en la jerarquía (
GameObject > Create Empty
). - Nómbralo
GestorDeEscenas
. - Arrástrale el script
CambioDeEscena.cs
(Add Component > CambioDeEscena
).
📌 Paso 5: Conectar el Botón con la Función de Cambio de Escena
- Selecciona el botón
BotonJugar
en la Jerarquía. - En el
Inspector
, busca la secciónButton > OnClick()
. - Haz clic en
+
para agregar una nueva acción. - Arrastra el
GestorDeEscenas
al campo vacío. - En el desplegable, selecciona:
- Para cambiar por índice:
CambioDeEscena > CargarEscena(int)
- Para cambiar por nombre:
CambioDeEscena > CargarEscenaPorNombre(string)
- Para cambiar por índice:
- Si usas el índice, escribe
1
(si el juego comienza en la escena con índice1
). - Si usas el nombre, escribe el nombre exacto de la escena (ejemplo:
"Nivel1"
).
🎯 Resultado Final
✅ Al presionar el botón «Jugar», se cambiará a la escena configurada.
✅ Puedes usar índices o nombres para mayor flexibilidad.
✅ Si la escena no está en Build Settings
, Unity dará un error (asegúrate de agregarla).
