Menu
CoddyTech

Überlebensnacht

Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 59 von 60.

Ein Überlebender steht auf einem dunklen Feld, und die ganze Nacht kommen Fledermäuse auf ihn zu, alle paar Sekunden eine neue aus einer der vier Ecken des Feldes. Jede Fledermaus fliegt geradewegs auf den Überlebenden zu, und die erste, die ihn erreicht, beendet die Nacht. Eine Uhr oben zählt die Sekunden bis zum Morgengrauen: Halte bis dahin durch und du gewinnst. Eine Pause-Schaltfläche friert alles ein, und wenn die Nacht endet, startet „Erneut spielen“ eine neue.

Das Skript Player, das den Überlebenden mit der Aktion Move bewegt, ist bereits geschrieben. Schreibe GameManager und Bat.

challenge icon

Aufgabe

Schwer

Starte die Überlebensnacht.

  1. GameManager: ein Singleton Instance, public enum State { Playing, Paused, Won, Lost } und public State state.
  2. Zeige während des Spielens Dawn in 12 als Countdown für nightLength (aufgerundet) an und lass alle spawnEvery Sekunden an zufälligen Spawnpunkten eine Fledermaus erscheinen. Lose() setzt den Status auf Lost.
  3. Bat: Fliege während des Spielens mit speed auf den Spieler zu, auf derselben Höhe; rufe innerhalb von reach Lose() auf.

Drücke „Spielen“: Fledermäuse kommen. Drücke dann „Prüfen“.

Probier es selbst

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;

public class GameManager : MonoBehaviour
{
    public float nightLength = 15f;
    public float spawnEvery = 2f;
    public GameObject batPrefab;
    public Transform[] spawnPoints;
    public TMP_Text dawnText;
    public Button pauseButton;
    public GameObject pausePanel;
    public GameObject endPanel;
    public TMP_Text endText;
    public Button restartButton;
}

Alle Lektionen in Echte Spiele entwickeln

Übe selbstständig: Unity-Playground