Zusammenstoß beendet den Lauf
Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 31 von 60.
Aufgabe
MittelEin Zusammenstoß sollte den Lauf beenden.
- Deklariere über
GameManagerpublic enum GameState { Playing, GameOver }; füge darinpublic GameState state = GameState.Playing;hinzu. public void GameOver()setztstateaufGameState.GameOverundspeedauf 0 und zeigtgameOverPanelan.Runnerruft bei einem Trigger mit dem TagObstacleGameManager.Instance.GameOver()auf.GameManager,RunnerundSpawnerbeginnenUpdate()mit einemreturn, wenn der Zustand nichtPlayingist.
Drücke „Spielen“ und verursache einen Zusammenstoß: Alles stoppt. Drücke dann „Prüfen“.
Probier es selbst
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public float speed = 10f;
public float speedUp = 0.5f;
public float maxSpeed = 20f;
public TMP_Text distanceText;
public GameObject gameOverPanel;
public Button restartButton;
private float distance;
void Awake()
{
Instance = this;
}
void Update()
{
speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
distance += speed * Time.deltaTime;
distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
}
}
Alle Lektionen in Echte Spiele entwickeln
1Text auf dem Bildschirm
Canvas und TextPunktestand anzeigenZahlen formatierenEin Countdown-TimerRückblick: Tachometer2Buttons und Bildschirme
Buttons und onClickLambdasVerknüpfungen im InspectorPanels ein- und ausblendenGesundheitsbalkenRückblick: Upgrade-Shop5Speichern mit PlayerPrefs
Eine Zahl speichernMit einem Standardwert ladenHöchstpunktzahlEinstellungen speichernRückblick: Münzen auf der Bank3Der Spielmanager
Ein Skript steuert das SpielDas SingletonSpielzuständeZum Zustand wechselnRückblick: Rundenmanager6Projekt: Endlosläufer
Drei SpurenHindernisse vorausÜbe selbstständig: Unity-Playground