Menu
CoddyTech

La porte

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

Ce défi clôt la section : des plaques qui sont des déclencheurs, du code regroupé dans un seul script et une porte commandée par une coroutine qui attend que le passage soit libre.

challenge icon

Défi

Difficile

Ouvre la porte lorsque le code Unlocked est activé, puis referme-la plus tard, jamais sur le joueur.

  1. Écris IEnumerator OpenDoor() : door.SetActive(false);, puis yield return new WaitForSeconds(openTime);.
  2. Puis while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))), yield return null;.
  3. Enfin, door.SetActive(true); et consigne Door closed. Lance-la avec StartCoroutine(OpenDoor()); après avoir consigné Unlocked.

Appuie sur « Jouer », déverrouille la porte et sors. 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;
    private int next = 1;

    public void Press(int number)
    {
        if (number == next)
        {
            Debug.Log("Plate " + number);
            next++;
            if (next > 3)
            {
                Debug.Log("Unlocked");
                next = 1;
            }
        }
        else
        {
            Debug.Log("Wrong plate");
            next = 1;
            StartCoroutine(Flash());
        }
    }

    IEnumerator Flash()
    {
        foreach (Renderer plate in plates)
        {
            plate.material.color = Color.red;
        }
        yield return new WaitForSeconds(1f);
        foreach (Renderer plate in plates)
        {
            plate.material.color = Color.gray;
        }
    }

}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Physique et gameplay

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