Menu
CoddyTech

If i else

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 6 z 85.

Typ bool przechowuje jedną z dwóch wartości: true lub false. Czy drzwi są otwarte? Czy gracz stoi na ziemi? Czy gra się skończyła?

bool gameOver = false;

Instrukcja if wykonuje zawarte w niej wiersze tylko wtedy, gdy jej warunek jest prawdziwy, a instrukcja else wykonuje zawarte w niej wiersze, gdy tak nie jest. Nawiasy klamrowe { } obejmują wiersze należące do każdej z tych części:

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

Gdy gra się kończy, ten kod chowa obiekt poza zasięgiem wzroku, a gdy gra trwa, utrzymuje go na górze. Taki kod umieszcza się wewnątrz metody, na przykład Update(), nigdy za ostatnim } klasy.

Unity również odpowiada na pytania za pomocą wartości bool. Input.GetKey(KeyCode.Space) ma wartość true, gdy gracz przytrzymuje spację, a przez resztę czasu ma wartość false, więc Update() może sprawdzać to w każdej klatce.

challenge icon

Wyzwanie

Łatwy

Przytrzymanie spacji powinno podnosić bramę.

  1. Poniżej dwóch komentarzy w Update() napisz if (open), a w nawiasach klamrowych umieść transform.position = new Vector3(0, 3, 0);.
  2. Za nim napisz else, a w nawiasach klamrowych umieść transform.position = new Vector3(0, 1, 0);.

Naciśnij „Graj”, kliknij grę i przytrzymaj spację: brama się podniesie i opadnie, gdy puścisz klawisz. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

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

        // Jeśli open ma wartość true, przesuń bramę do (0, 3, 0).
        // W przeciwnym razie przesuń ją do (0, 1, 0).
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity