Menu
CoddyTech

Si et sinon

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 6 sur 85.

Un bool contient l’une de deux valeurs : true ou false. La porte est-elle ouverte ? Le joueur est-il au sol ? La partie est-elle terminée ?

bool gameOver = false;

Un if n’exécute ses lignes que lorsque sa condition est vraie, et un else exécute ses lignes lorsqu’elle ne l’est pas. Les accolades { } contiennent les lignes qui appartiennent à chaque partie :

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

Cela fait disparaître un objet hors de vue lorsque la partie est terminée et le maintient en hauteur pendant que la partie continue. Ce type de code se place à l’intérieur d’une méthode, comme Update(), jamais après la dernière accolade } de la classe.

Unity répond aussi aux questions avec des booléens. Input.GetKey(KeyCode.Space) vaut true tant que le joueur maintient la barre d’espace enfoncée, et false le reste du temps ; Update() peut donc le vérifier à chaque image.

challenge icon

Défi

Facile

Maintenir la barre d’espace enfoncée doit soulever la porte.

  1. Sous les deux commentaires dans Update(), écris if (open) avec transform.position = new Vector3(0, 3, 0); entre ses accolades.
  2. Ensuite, écris else avec transform.position = new Vector3(0, 1, 0); entre ses accolades.

Clique sur « Jouer », clique dans le jeu et maintiens la barre d’espace enfoncée : la porte se soulève et redescend lorsque tu relâches la touche. Puis clique sur « Vérifier ».

Essayez vous-même

using UnityEngine;

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

        // Si open vaut true, déplace le portail vers (0, 3, 0).
        // Sinon, déplace-le vers (0, 1, 0).
    }
}

Toutes les leçons de Les bases du scripting dans Unity

Entraînez-vous par vous-même : Playground Unity