Menu
CoddyTech

La puerta

Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 71 de 71.

Este desafío concluye la sección: placas que son activadores, código mantenido en un solo script y una puerta controlada por una corrutina que espera a que el umbral quede despejado.

challenge icon

Desafío

Difícil

Abre la puerta cuando aparezca Unlocked y vuelve a cerrarla más tarde, nunca cuando haya un jugador en ella.

  1. Escribe IEnumerator OpenDoor(): door.SetActive(false);, después yield return new WaitForSeconds(openTime);.
  2. Después, while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))), yield return null;.
  3. Por último, door.SetActive(true); y registra Door closed. Inícialo con StartCoroutine(OpenDoor()); después de registrar Unlocked.

Pulsa «Jugar», desbloquea la puerta y sal. Después, pulsa «Comprobar».

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Física y jugabilidad

Practica por tu cuenta: Playground de Unity