Menu
CoddyTech

Der Läufer

Teil des Abschnitts Grundlagen des Scripting in Unity der Unity-Journey von Coddy. Lektion 60 von 67.

In diesem Kapitel entwickelst du ein kleines Spiel: Dodge the Blocks. Du steuerst einen Läufer auf einer Spur, während Blöcke vom Himmel fallen, und eine Berührung beendet den Lauf. Das ganze Spiel besteht aus einem Skript, Runner, das in jeder Lektion um ein Feature erweitert wird: Steuerung, fallende Blöcke, Aufräumen, der Treffer und eine Punktzahl.

Das erste Feature ist eine Steuerung, die auf der Spur bleibt, mit Mathf.Clamp(value, min, max) aus Catch the Star: Es gibt min zurück, wenn der Wert unterhalb des Bereichs liegt, max, wenn er darüber liegt, und andernfalls den Wert selbst. Es kommt darauf an, an welcher Stelle du clampst. Diese Lademeter füllt sich, solange die Leertaste gedrückt gehalten wird, leert sich, wenn sie nicht gedrückt wird, und verlässt nie den Bereich von 0 bis 10:

[SerializeField] private float charge = 0f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        charge += 4f * Time.deltaTime;
    }
    else
    {
        charge -= 2f * Time.deltaTime;
    }
    charge = Mathf.Clamp(charge, 0f, 10f);
    transform.localScale = new Vector3(0.5f, charge, 0.5f);
}

Der Clamp kommt nach der Änderung. Wird zuerst geclampt, könnte der Wert den Grenzwert am Ende des Frames um einen Schritt überschreiten, und der Balken würde anhand dieses Werts gezeichnet. Mathf.Clamp gibt außerdem eine neue Zahl zurück, statt die übergebene Variable zu ändern. Weise das Ergebnis also wieder zu.

challenge icon

Aufgabe

Mittel

Starte Dodge the Blocks mit dem Läufer. Im Inspector werden dem Skript Runner die Werte speed (6) und laneEdge (4) zugewiesen.

  • Mit den Pfeiltasten nach links und rechts bewegst du den Läufer entlang der x-Achse mit speed Einheiten pro Sekunde.
  • Sein x-Wert fällt nie unter -laneEdge und steigt nie über laneEdge, sodass er auf der Spur bleibt.

Drücke Play, klicke ins Spiel und laufe zu beiden Enden der Spur, dann Check.

Probier es selbst

using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;

    void Update()
    {
        // Mit den Pfeiltasten entlang der x-Achse bewegen und dann x innerhalb der Fahrspur halten
    }
}
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 Grundlagen des Scripting in Unity