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.
Sfida
DifficileApri la porta quando compare Unlocked e richiudila più tardi, senza mai chiudere la porta sul giocatore.
- Scrivi
IEnumerator OpenDoor():door.SetActive(false);, poiyield return new WaitForSeconds(openTime);. - Poi
while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))),yield return null;. - Infine,
door.SetActive(true);e registraDoor closed. Avviala conStartCoroutine(OpenDoor());dopo aver registratoUnlocked.
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;
}
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fisica e gameplay
1Corpo rigido
Gravità e massaSpingi con AddForceSalta con un impulsoFixedUpdate per la fisicaVelocitàCorpi cinematiciRiepilogo: piattaforma di lancio4Coroutine
InvokeInvokeRepeating, CancelInvokeLa tua prima coroutineCicli nelle coroutineInterrompere le coroutineRiepilogo: conto alla rovescia7Rotazione
Angoli di EuleroQuaternioniGuarda nella direzione in cui ti muoviRuota in modo fluidoRiepilogo: Torretta10Progetto: Fuga dall'arena
L'arenaCacciatori2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliereEsercitati da solo: Playground Unity