Menu
CoddyTech

If und Else

Teil des Abschnitts Unity-Scripting: Grundlagen der Unity-Journey von Coddy. Lektion 6 von 85.

Ein bool enthält einen von zwei Werten: true oder false. Ist die Tür offen? Ist der Spieler auf dem Boden? Ist das Spiel vorbei?

bool gameOver = false;

Ein if führt seine Zeilen nur aus, wenn seine Bedingung wahr ist, und ein else führt seine Zeilen aus, wenn sie es nicht ist. Die geschweiften Klammern { } enthalten die Zeilen, die zu jedem Teil gehören:

if (gameOver)
{
    transform.position = new Vector3(0, -2, 0);
}
else
{
    transform.position = new Vector3(0, 2, 0);
}

Dadurch sinkt ein Objekt außer Sicht, wenn das Spiel vorbei ist, und bleibt oben, solange das Spiel weitergeht. Code wie dieser gehört in eine Methode, zum Beispiel Update(), niemals hinter das letzte } der Klasse.

Auch Unity beantwortet Fragen mit bools. Input.GetKey(KeyCode.Space) ist true, solange der Spieler die Leertaste gedrückt hält, und false während der restlichen Zeit, sodass Update() dies in jedem Frame abfragen kann.

challenge icon

Aufgabe

Einfach

Wenn du die Leertaste gedrückt hältst, sollte sich das Tor heben.

  1. Schreibe unter die beiden Kommentare in Update() if (open) mit transform.position = new Vector3(0, 3, 0); in den geschweiften Klammern.
  2. Schreibe danach else mit transform.position = new Vector3(0, 1, 0); in den geschweiften Klammern.

Klicke auf „Spielen“, klicke ins Spiel und halte die Leertaste gedrückt: Das Tor hebt sich und senkt sich wieder, wenn du die Taste loslässt. Klicke dann auf „Prüfen“.

Probier es selbst

using UnityEngine;

public class Gate : MonoBehaviour
{
    void Update()
    {
        bool open = Input.GetKey(KeyCode.Space);

        // Wenn open true ist, bewege das Tor nach (0, 3, 0).
        // Andernfalls bewege es nach (0, 1, 0).
    }
}

Alle Lektionen in Unity-Scripting: Grundlagen

Übe selbstständig: Unity-Playground