Menu
CoddyTech

If e Else

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 6 de 85.

Um bool contém um de dois valores: true ou false. A porta está aberta? O jogador está no chão? O jogo acabou?

bool gameOver = false;

Um if executa suas linhas somente quando sua condição é verdadeira, e um else executa suas linhas quando ela não é. As chaves { } contêm as linhas que pertencem a cada parte:

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

Isso afunda um objeto para que ele desapareça de vista quando o jogo acaba e o mantém no alto enquanto o jogo continua. Código como esse fica dentro de um método, como Update(), nunca depois do último } da classe.

O Unity também responde a perguntas com bools. Input.GetKey(KeyCode.Space) é true enquanto o jogador mantém a barra de espaço pressionada e false no resto do tempo, então Update() pode verificar isso a cada quadro.

challenge icon

Desafio

Fácil

Manter a tecla Espaço pressionada deve levantar o portão.

  1. Abaixo dos dois comentários em Update(), escreva if (open) com transform.position = new Vector3(0, 3, 0); entre as chaves.
  2. Depois, escreva else com transform.position = new Vector3(0, 1, 0); entre as chaves.

Pressione “Jogar”, clique no jogo e mantenha a tecla Espaço pressionada: o portão sobe e desce quando você solta a tecla. Depois, clique em “Verificar”.

Experimente você mesmo

using UnityEngine;

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

        // Se open for true, mova o portão para (0, 3, 0).
        // Caso contrário, mova-o para (0, 1, 0).
    }
}

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity