Menu
CoddyTech

Zeitrennen

Teil des Abschnitts Echte Spiele entwickeln der Unity-Journey von Coddy. Lektion 55 von 56.

Ein Zeitrennen durch einen Garten. Der Läufer startet an einem Ende mit zehn Sekunden auf der Uhr und muss das weiße Ziel am anderen Ende umrunden, dabei eine Hecke umgehen, bevor die Zeit abläuft. Goldene Uhren auf dem Weg bringen jeweils ein paar zusätzliche Sekunden. Wenn die Zeit fast abgelaufen ist, wird die Uhr rot; wenn sie abgelaufen ist, beginnt die Strecke von vorn. Erreiche rechtzeitig das Ziel, und das Spiel wechselt zur Finish-Szene.

Schreibe zwei Skripte: Runner für den Läufer mit einem CharacterController und Race für das Race-Objekt.

challenge icon

Aufgabe

Schwer

Der Build enthält zwei Szenen: Track und Finish. Auf der Strecke sind die Uhren mit Clock und das Ziel mit Goal getaggt; beide sind Trigger.

Im Inspector weist du Runner speed (6), gravity (-9.81) und race (das Race-Skript) zu.

  • Die Move-Aktion des Projekts bewegt den Runner mit speed Einheiten pro Sekunde: rechts und links entlang der x-Achse, nach oben und unten entlang der z-Achse. Er fällt mit gravity und bewegt sich nur mit controller.Move, daher hält ihn die Hecke auf.
  • Wenn der Runner eine Uhr berührt, wird sie verbraucht und die Rennzeit erhält ihren Bonus. Wenn er das Ziel berührt, ist das Rennen beendet.

Im Inspector weist du Race timeLimit (10), bonus (3) und timeText zu.

  • Die verbleibende Zeit beginnt bei timeLimit und nimmt entsprechend der tatsächlich verstrichenen Zeit ab. timeText zeigt sie mit einer Dezimalstelle an, als Time: 7.4, in Weiß und in Rot (Color.red), wenn weniger als 3 Sekunden verbleiben.
  • Jede Uhr addiert bonus Sekunden.
  • Wenn die Zeit 0 erreicht, protokolliere Time's up! und lade die Strecke erneut vom Anfang an.
  • Wenn das Rennen rechtzeitig beendet wird, protokolliere die verbleibende Zeit als Finished with 4.2 s left und lade die Finish-Szene.

Drücke Play, besiege die Uhr und klicke dann auf Check.

Probier es selbst

using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;

public class Race : MonoBehaviour
{
    public float timeLimit = 10f;
    public float bonus = 3f;
    public TMP_Text timeText;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Echte Spiele entwickeln