Menu
CoddyTech

Salle d’évasion

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 70 sur 71.

Une salle d’évasion avec une serrure à code. Trois plaques de pression grises sont posées au sol, et la porte du mur nord ne s’ouvre que lorsque le joueur marche dessus dans le bon ordre : plaque 1, plaque 2, plaque 3. Rien dans la salle n’indique quelle plaque est laquelle. Une mauvaise plaque relance le code depuis le début et fait clignoter toutes les plaques en rouge pendant une seconde. La porte ouverte reste ouverte quelques secondes, puis se referme, mais jamais sur le joueur : tant que le joueur se tient dans l’embrasure, elle attend.

Le script Player est prêt : les flèches permettent au joueur de se déplacer, celui-ci est étiqueté Player et se trouve sur la couche Player. Écris deux scripts : Plate sur chaque plaque et CodeLock sur la serrure.

challenge icon

Défi

Difficile

Relie les plaques et le code : 1, 2, 3.

  1. Dans Plate, quand le Player entre, appelle codeLock.Press(number);.
  2. Dans Press, avec int next = 1 : une correspondance affiche "Plate " + number et ajoute 1 ; après 3, affiche Unlocked, puis réinitialise next.
  3. Sinon, affiche Wrong plate, réinitialise next et lance une coroutine : plaques en Color.red, pendant 1 seconde, puis en Color.gray.

Clique sur « Jouer » et trouve l’ordre. Puis clique sur « Vérifier ».

Essayez vous-même

using System.Collections;
using UnityEngine;

public class CodeLock : MonoBehaviour
{
    [SerializeField] private Renderer[] plates;
    [SerializeField] private GameObject door;
    [SerializeField] private Transform doorway;
    [SerializeField] private float openTime = 4f;

    public void Press(int number)
    {
        // vérifier le code ; faire clignoter les plaques en cas d'erreur ; ouvrir la porte après la plaque 3
    }
}

Toutes les leçons de Physique et gameplay

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