Menu
CoddyTech

If y Else

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 6 de 85.

Un bool contiene uno de dos valores: true o false. ¿Está abierta la puerta? ¿Está el jugador en el suelo? ¿Se acabó el juego?

bool gameOver = false;

Un if ejecuta sus líneas solo cuando su condición es verdadera, y un else ejecuta sus líneas cuando no lo es. Las llaves { } contienen las líneas que pertenecen a cada parte:

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

Esto hunde un objeto fuera de la vista cuando se acaba el juego y lo mantiene arriba mientras el juego continúa. Un código como este va dentro de un método, como Update(), nunca después de la última } de la clase.

Unity también responde preguntas con valores bool. Input.GetKey(KeyCode.Space) es true mientras el jugador mantiene pulsada la barra espaciadora y false el resto del tiempo, así que Update() puede consultarlo en cada fotograma.

challenge icon

Desafío

Fácil

Mantener presionada la barra espaciadora debería levantar la puerta.

  1. Debajo de los dos comentarios en Update(), escribe if (open) con transform.position = new Vector3(0, 3, 0); entre sus llaves.
  2. Después, escribe else con transform.position = new Vector3(0, 1, 0); entre sus llaves.

Pulsa «Jugar», haz clic en el juego y mantén presionada la barra espaciadora: la puerta sube y baja cuando la sueltas. Después, «Comprobar».

Pruébalo tú mismo

using UnityEngine;

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

        // Si open es true, mueve la puerta a (0, 3, 0).
        // De lo contrario, muévela a (0, 1, 0).
    }
}

Todas las lecciones de Fundamentos de scripting en Unity

Practica por tu cuenta: Playground de Unity