Menu
CoddyTech

Pokój zagadek

Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 70 z 71.

Pokój zagadek z zamkiem szyfrowym. Na podłodze leżą trzy szare płyty naciskowe, a drzwi w północnej ścianie otwierają się tylko wtedy, gdy gracz stanie na nich we właściwej kolejności: płyta 1, płyta 2, płyta 3. W pokoju nie ma żadnej wskazówki, która płyta jest która. Nadepnięcie na niewłaściwą płytę rozpoczyna kod od początku i sprawia, że wszystkie płyty na sekundę migają na czerwono. Otwarte drzwi pozostają otwarte przez kilka sekund, a potem znów się zamykają, ale nigdy na graczu: gdy gracz stoi w przejściu, drzwi czekają.

Skrypt Player jest gotowy: strzałki poruszają graczem, który ma tag Player i znajduje się na warstwie Player. Napisz dwa skrypty: Plate dla każdej płyty oraz CodeLock dla zamka.

challenge icon

Wyzwanie

Trudny

Połącz płytki z kodem: 1, 2, 3.

  1. W Plate, gdy pojawi się Player, wywołaj codeLock.Press(number);.
  2. W Press, z int next = 1: zgodność zapisuje w logu "Plate " + number i zwiększa wartość o 1; po 3 zapisz w logu Unlocked i zresetuj next.
  3. Else zapisz w logu Wrong plate, zresetuj next i uruchom korutynę: płytki przyjmują kolor Color.red, odczekaj 1 sekundę, a następnie ustaw Color.gray.

Naciśnij „Graj” i znajdź kolejność. 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;

    public void Press(int number)
    {
        // sprawdź kod; przy błędnym kodzie spraw, by plates zamigały; otwórz door po plate 3
    }
}

Wszystkie lekcje w sekcji Fizyka i rozgrywka

Poćwicz samodzielnie: Edytor online Unity