En este tutorial, aprenderás a hacer que el jugador «muera» cuando es atrapado por un enemigo. Esto puede significar:
Ocultar al jugador (desactivarlo o destruirlo).
Mostrar un
Game Over
. Detener el movimiento del jugador.
Reiniciar la escena después de un tiempo.
1. Configurar el Jugador y el Enemigo
Para que la colisión funcione correctamente, asegúrate de que el jugador y el enemigo tienen los componentes adecuados.
Paso 1: Configurar el Jugador
- Selecciona el
Jugador
en la Jerarquía (Hierarchy
). - Asegúrate de que tiene un
Rigidbody
(Add Component > Rigidbody
).- Marca
Is Kinematic
(si el jugador no usa física).
- Desactiva
Use Gravity
si el jugador no debe caer.
- Marca
- Asegura que tiene un
Collider
(BoxCollider
,CapsuleCollider
, etc.). - Dale el
Tag
"Player"
(Inspector > Tag > Player
).
Paso 2: Configurar el Enemigo
- Selecciona el
Enemigo
en la Jerarquía. - Asegúrate de que tiene un
NavMeshAgent
(Add Component > NavMeshAgent
). - Asegura que tiene un
Collider
(BoxCollider
,CapsuleCollider
, etc.). - Marca
Is Trigger
en elCollider
(para usar
OnTriggerEnter
). - Dale el
Tag
"Enemigo"
(Inspector > Tag > Enemigo
).
2. Modificar el Script del Enemigo para «Matar» al Jugador
Paso 3: Crear el Script EnemigoPersecucion.cs
Modifica el código para detectar al jugador y desactivarlo cuando lo atrape.
3. Asignar el Script al Enemigo
- Selecciona el
Enemigo
en la Jerarquía. - Arrástrale el script
EnemigoPersecucion.cs
(Add Component > EnemigoPersecucion
). - Arrastra el
Jugador
al campoObjetivo
en elInspector
.
4. Opcional: Mostrar un Panel de Game Over
Si quieres mostrar un panel de Game Over antes de reiniciar la escena, haz lo siguiente:
Paso 1: Crear el Canvas
de Game Over
- Ve a
GameObject > UI > Canvas
y créalo. - Renómbralo
CanvasGameOver
. - Dentro del
CanvasGameOver
, haz:UI > Panel
→ Renómbralo"PanelGameOver"
.UI > Text (TextMeshPro)
→ Escribe «¡Game Over!».UI > Button - TextMeshPro
→ RenómbraloBotonReiniciar
y cambia su texto a"Reintentar"
.
- Desactiva
CanvasGameOver
en elInspector
para que no aparezca al inicio.
Paso 2: Crear el Script GameOverManager.cs
- Crea un nuevo script en
Assets/Scripts
. - Nómbralo
GameOverManager.cs
y abre el archivo. - Pega este código:
Paso 3: Conectar el Botón de «Reintentar»
- Selecciona el
BotonReiniciar
en la Jerarquía. - En el
Inspector
, busca la secciónButton > OnClick()
. - Haz clic en
+
para agregar una nueva acción. - Arrastra el
GestorGameOver
al campo vacío. - En la lista desplegable, selecciona
GameOverManager > ReiniciarJuego()
.
Resultado Final
Cuando el enemigo toca al jugador, este «muere» (se desactiva o destruye).
Se muestra un
Game Over
antes de reiniciar la escena. El enemigo deja de moverse tras atrapar al jugador.
