Menu
CoddyTech

Ночь выживания

Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 59 из 60.

Выживший стоит в тёмном поле, а всю ночь на него слетаются летучие мыши — каждые пару секунд появляется новая из одного из четырёх углов поля. Каждая летучая мышь летит прямо к выжившему, и первая, которая доберётся до него, завершает ночь. Часы вверху отсчитывают секунды до рассвета: продержись до этого момента — и победа за тобой. Кнопка «Пауза» останавливает всё, а когда ночь заканчивается, кнопка «Играть снова» начинает новую.

Скрипт Player, который перемещает выжившего с помощью действия Move, уже написан. Напиши GameManager и Bat.

challenge icon

Задание

Сложно

Начните «Ночь выживания».

  1. GameManager: одиночка Instance, public enum State { Playing, Paused, Won, Lost } и public State state.
  2. Пока игра идёт, показывайте обратный отсчёт Dawn in 12 по nightLength (округляя вверх) и создавайте летучую мышь в случайных точках появления каждые spawnEvery секунд. Lose() задаёт состояние Lost.
  3. Bat: пока игра идёт, летите к игроку со скоростью speed, на той же высоте; достигнув расстояния reach, вызовите Lose().

Нажмите «Играть»: появятся летучие мыши. Затем нажмите «Проверить».

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

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;

public class GameManager : MonoBehaviour
{
    public float nightLength = 15f;
    public float spawnEvery = 2f;
    public GameObject batPrefab;
    public Transform[] spawnPoints;
    public TMP_Text dawnText;
    public Button pauseButton;
    public GameObject pausePanel;
    public GameObject endPanel;
    public TMP_Text endText;
    public Button restartButton;
}

Все уроки раздела Создание настоящих игр

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