Menu
CoddyTech

La porta

Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 71 di 71.

Questa sfida conclude la sezione: piastre che fungono da trigger, codice raccolto in un unico script e una porta gestita da una coroutine che attende che il passaggio sia libero.

challenge icon

Sfida

Difficile

Apri la porta quando compare Unlocked e richiudila più tardi, senza mai chiudere la porta sul giocatore.

  1. Scrivi IEnumerator OpenDoor(): door.SetActive(false);, poi yield return new WaitForSeconds(openTime);.
  2. Poi while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))), yield return null;.
  3. Infine, door.SetActive(true); e registra Door closed. Avviala con StartCoroutine(OpenDoor()); dopo aver registrato Unlocked.

Premi «Gioca», sblocca la porta ed esci. Poi premi «Verifica».

Provalo tu

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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fisica e gameplay

Esercitati da solo: Playground Unity