Menu
CoddyTech

Überleben

Teil des Abschnitts Spielarchitektur in Unity der Unity-Journey von Coddy. Lektion 47 von 50.

challenge icon

Aufgabe

Mittel

Letzter Schritt: Der Durchlauf endet, und der beste Durchlauf bleibt erhalten. Behalte alles aus den früheren Lektionen bei. Die Canvas enthält ein ausgeblendetes GameOverPanel mit ResultText, BestText und einem RestartButton mit der Beschriftung Fight again, und das GameManager-Objekt hat dein GameManager-Skript, wobei hero, spawner, gameOverPanel, resultText, bestText und restartButton im Inspector zugewiesen sind.

  • Hero erhält public event Action Died, das ausgelöst wird, wenn seine Gesundheit 0 erreicht, nachdem es sich selbst deaktiviert hat.
  • Füge in GameManager.cs eine Klasse BestRun mit dem Attribut [System.Serializable] sowie public int wave und public int kills hinzu.
  • GameManager lauscht auf das Died-Ereignis des Helden und auf Enemy.Died, wodurch die Kills dieses Durchlaufs gezählt werden: Abonniere die Ereignisse in OnEnable und entferne die Abonnements in OnDisable. In Start lädt es den besten Durchlauf mit JsonUtility aus best.json in Application.persistentDataPath, falls diese Datei existiert, blendet das Panel aus und sorgt dafür, dass restartButton das Spiel neu startet.
  • Wenn der Held stirbt, halte das Spiel an (Time.timeScale 0). Der Durchlauf besteht aus der Wave des Spawners und den Kills. Ein neuer Bestwert ist erreicht, wenn eine höhere Welle oder dieselbe Welle mit mehr Kills erreicht wurde: Dann wird der Durchlauf zum Bestwert und mit JsonUtility.ToJson in best.json gespeichert. Zeige den Durchlauf in resultText als Wave 2, 7 kills und den Bestwert in bestText als Best: wave 3, 12 kills an und blende dann das Panel ein.
  • Beim Neustart wird der Zeitmaßstab wieder auf 1 gesetzt und die Szene erneut geladen.

Drücke Play und kämpfe, bis du fällst. Versuche dann, deinen Bestwert zu übertreffen. Klicke anschließend auf Check.

Probier es selbst

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // In einer späteren Lektion wird dies ergänzt: das Ende des Durchlaufs und der beste Durchlauf.
}

Alle Lektionen in Spielarchitektur in Unity