Die Tür
Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 71 von 71.
Diese Herausforderung schließt den Abschnitt ab: Platten, die als Trigger fungieren, Code, der in einem Skript zusammengefasst ist, und eine Tür, die von einer Coroutine gesteuert wird, die wartet, bis der Durchgang frei ist.
Aufgabe
SchwerÖffne die Tür bei Unlocked und schließe sie später wieder, niemals, während sich der Spieler darin befindet.
- Schreibe
IEnumerator OpenDoor():door.SetActive(false);, dannyield return new WaitForSeconds(openTime);. - Dann
while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))),yield return null;. - Zum Schluss
door.SetActive(true);und protokolliereDoor closed. Starte es mitStartCoroutine(OpenDoor());, nachdem duUnlockedprotokolliert hast.
Drücke „Spielen“, entriegle die Tür und geh hinaus. Drücke dann „Prüfen“.
Probier es selbst
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;
}
}
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Physik und Gameplay
1Rigidbody
Schwerkraft und MasseMit AddForce schiebenMit einem Impuls springenFixedUpdate für PhysikGeschwindigkeitKinematische KörperRückblick: Startrampe4Coroutinen
AufrufenWiederholt aufrufen, Aufruf abbrechenDeine erste CoroutineSchleifen in CoroutinenCoroutinen beendenRückblick: Countdown10Projekt: Arena-Flucht
Die ArenaJäger2Kollisionen
OnCollisionEnterWas habe ich getroffen?Beim Aufprall zerbrechenAuf dem Boden stehenAbprallen und ReibungCollider-FormenRückblick: Zerstörbare Wand5Projekt: Münzrausch
Der rollende BallMünzen zum Einsammeln11Abschließende Herausforderungen
KanonenreichweiteBewegliche ZieleMurmelgolfIns LochEscape RoomDie TürÜbe selbstständig: Unity-Playground