Drzwi
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 71 z 71.
To wyzwanie kończy sekcję: płyty działające jako wyzwalacze, kod przechowywany w jednym skrypcie oraz drzwi sterowane przez procedurę współbieżną, która czeka, aż przejście będzie wolne.
Wyzwanie
TrudnyOtwórz drzwi po Unlocked i zamknij je później, ale nigdy wtedy, gdy gracz znajduje się w przejściu.
- Napisz
IEnumerator OpenDoor():door.SetActive(false);, a następnieyield return new WaitForSeconds(openTime);. - Następnie wykonuj
while (Physics.CheckSphere(doorway.position, 1f, LayerMask.GetMask("Player"))),yield return null;. - Na koniec
door.SetActive(true);i zapisz w loguDoor closed. Uruchom tę funkcję za pomocąStartCoroutine(OpenDoor());po zapisaniu w loguUnlocked.
Naciśnij „Graj”, odblokuj drzwi i wyjdź. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
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;
}
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Fizyka i rozgrywka
1Ciało sztywne
Grawitacja i masaPopychanie za pomocą AddForceSkok z impulsemFixedUpdate dla fizykiPrędkośćCiała kinematycznePowtórka: platforma startowa4Korutyny
WywoływanieInvokeRepeating i CancelInvokeTwoja pierwsza korutynaPętle w korutynachZatrzymywanie korutynPodsumowanie: odliczanie10Projekt: Ucieczka z areny
ArenaŁowcy2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur5Projekt: Wyścig po monety
Tocząca się piłkaZbieranie monet3Wyzwalacze
Kolizje wyzwalająceOnTriggerEnterPrzedmioty do zebraniaSkrzynie zatrzymują resztęStrefy śmierciWejście i wyjściePodsumowanie: klucz i drzwiPoćwicz samodzielnie: Edytor online Unity