Sobrevive
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 47 de 50.
Desafío
IntermedioÚltimo paso: la partida termina y se conserva la mejor partida. Conserva todo lo de las lecciones anteriores. El canvas tiene un GameOverPanel oculto con ResultText, BestText y un RestartButton con la etiqueta «¡A luchar de nuevo!», y el objeto GameManager tiene tu script GameManager, con hero, spawner, gameOverPanel, resultText, bestText y restartButton configurados en el Inspector.
Heroobtienepublic event Action Died, que se activa cuando su salud llega a 0, después de que se desactive.- En
GameManager.cs, añade una clase[System.Serializable]llamadaBestRunconpublic int waveypublic int kills. GameManagerescucha elDieddel héroe yEnemy.Died, que cuenta las eliminaciones de esta partida: suscríbete enOnEnabley anula la suscripción enOnDisable. EnStart, carga la mejor partida desdebest.jsonenApplication.persistentDataPathconJsonUtility, si ese archivo existe; oculta el panel y haz querestartButtonreinicie el juego.- Cuando el héroe muera, detén el juego (
Time.timeScale0). La partida se compone de laWavedel generador y las eliminaciones. Es una nueva mejor marca si llegó a una oleada superior, o a la misma oleada con más eliminaciones: después pasa a ser la mejor y se guarda enbest.jsonconJsonUtility.ToJson. Muestra la partida enresultText, comoWave 2, 7 kills, y la mejor marca enbestText, comoBest: wave 3, 12 kills; después, muestra el panel. - El reinicio vuelve a poner la escala de tiempo en 1 y carga de nuevo la escena.
Pulsa Jugar y lucha hasta caer; después, intenta superar tu mejor marca. Luego, pulsa Comprobar.
Pruébalo tú mismo
using UnityEngine;
public class GameManager : MonoBehaviour
{
// Una lección posterior completará esto: el final de la partida y la mejor partida.
}
Todas las lecciones de Arquitectura de juegos en Unity
1Componentes, no jerarquías
Componentes pequeñosUn script base para enemigosComponentes abstractosComponentes que trabajan juntosRepaso: torreta modular4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botín7Máquinas de estados
Estados como clasesUna máquina de estadosTransicionesCerebros de enemigosRepaso: estados de puertas10Proyecto: Superviviente de la arena
El héroeTipos de enemigos2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: tecla de interacción5ScriptableObjects
Recursos de datosEstadísticas de armasConfiguración compartidaOleadas como datosRepaso: base de datos de objetos