Menu
CoddyTech

If ed Else

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 6 di 85.

Un bool contiene uno di due valori: true o false. La porta è aperta? Il giocatore è a terra? La partita è finita?

bool gameOver = false;

Un if esegue le sue righe solo quando la sua condizione è vera, mentre un else esegue le sue righe quando non lo è. Le parentesi graffe { } racchiudono le righe che appartengono a ciascuna parte:

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

Questo fa sprofondare un oggetto fuori dalla vista quando la partita è finita e lo mantiene in alto mentre la partita continua. Codice come questo va inserito all'interno di un metodo, come Update(), mai dopo l'ultima } della classe.

Anche Unity risponde alle domande con valori bool. Input.GetKey(KeyCode.Space) è true mentre il giocatore tiene premuta la barra spaziatrice e false per il resto del tempo, quindi Update() può verificarlo a ogni fotogramma.

challenge icon

Sfida

Facile

Tenendo premuto Spazio, il cancello dovrebbe sollevarsi.

  1. Sotto i due commenti in Update(), scrivi if (open) con transform.position = new Vector3(0, 3, 0); tra le parentesi graffe.
  2. Dopo, scrivi else con transform.position = new Vector3(0, 1, 0); tra le parentesi graffe.

Premi «Gioca», fai clic sul gioco e tieni premuto Spazio: il cancello si solleva e si abbassa quando rilasci il tasto. Poi premi «Verifica».

Provalo tu

using UnityEngine;

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

        // Se open è true, sposta il cancello a (0, 3, 0).
        // Altrimenti, spostalo a (0, 1, 0).
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity

Esercitati da solo: Playground Unity