Menu
CoddyTech

Комната побега

Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 70 из 71.

Комната-головоломка с кодовым замком. На полу лежат три серые нажимные плиты, а дверь в северной стене открывается только тогда, когда игрок наступает на них в правильном порядке: плита 1, плита 2, плита 3. Ничто в комнате не подсказывает, какая плита какая. Если наступить не на ту плиту, последовательность начинается заново, и все плиты на секунду вспыхивают красным. Открытая дверь остается открытой несколько секунд, а затем снова закрывается, но никогда не закрывается на игроке: пока игрок стоит в дверном проеме, дверь ждет.

Скрипт Player готов: стрелки перемещают игрока, у которого задан тег Player и который находится на слое Player. Напиши два скрипта: Plate для каждой плиты и CodeLock для замка.

challenge icon

Задание

Сложно

Свяжи пластины с кодом: 1, 2, 3.

  1. В Plate, когда входит Player, вызови codeLock.Press(number);.
  2. В Press, с int next = 1: при совпадении выведи в журнал "Plate " + number и прибавь 1; после 3 выведи в журнал Unlocked и сбрось next.
  3. Иначе выведи в журнал Wrong plate, сбрось next и запусти корутину: установи для пластин Color.red, подожди 1 секунду, затем установи Color.gray.

Нажми «Играть» и найди порядок. Затем нажми «Проверить».

Попробуйте сами

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)
    {
        // проверить код; мигнуть пластинами при неверном вводе; открыть дверь после пластины 3
    }
}

Все уроки раздела Физика и игровой процесс

Потренируйтесь самостоятельно: Песочница Unity