Гонка на время
Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 55 из 56.
Забег на время по саду. Бегун начинает на одном конце с десятью секундами на таймере и должен добраться до белой цели на дальнем конце, обогнув живую изгородь, прежде чем истечёт время. Золотые часы по пути добавляют несколько секунд. Когда времени почти не остаётся, таймер становится красным; когда время истекает, трасса начинается заново. Доберись до цели вовремя, и игра перейдёт к сцене Finish.
Напиши два скрипта: Runner для бегуна с компонентом CharacterController и Race для объекта Race.
Задание
СложноВ сборке две сцены: Track и Finish. На трассе часы помечены тегом Clock, а цель — тегом Goal; оба объекта являются триггерами.
В Inspector задаются значения speed (6), gravity (-9.81) и race (скрипт Race) для Runner.
- Действие Move проекта перемещает бегуна со скоростью
speedединиц в секунду: вправо и влево вдоль оси x, вверх и вниз вдоль оси z. Он падает под действиемgravityи перемещается только с помощьюcontroller.Move, поэтому изгородь его останавливает. - При столкновении с часами они исчезают, а к времени гонки добавляется бонус. При столкновении с целью гонка завершается.
В Inspector задаются значения timeLimit (10), bonus (3) и timeText для Race.
- Оставшееся время начинается со значения
timeLimitи уменьшается на величину прошедшего реального времени.timeTextотображает его с одним десятичным знаком, напримерTime: 7.4, белым цветом, а когда остаётся меньше 3 секунд — красным (Color.red). - Каждые часы добавляют
bonusсекунд. - Когда время достигает 0, выведите в журнал
Time's up!и загрузите трассу заново, с самого начала. - Если гонка завершена вовремя, выведите в журнал оставшееся время, например
Finished with 4.2 s left, и загрузите сцену Finish.
Нажмите Играть и обгоните часы, затем нажмите Проверить.
Попробуйте сами
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class Race : MonoBehaviour
{
public float timeLimit = 10f;
public float bonus = 3f;
public TMP_Text timeText;
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Создание настоящих игр
1Текст на экране
Холст и текстПокажем счётФорматирование чиселТаймер обратного отсчётаПовторение: спидометр4Сцены и уровни
Загрузить сценуПерезапустить уровеньСледующий уровеньСохранить между сценамиПовторение: выбор уровня7Управление временем
Пауза с timeScaleЗамедленное движениеНемасштабируемое времяПовторение: Bullet Time10Проект: 3D-платформер
ТрассаДвижущиеся платформы2Кнопки и экраны
Кнопки и onClickЛямбдыСвязи в InspectorВключение и выключение панелейШкалы здоровьяПовторение: магазин улучшений5Сохранение с помощью PlayerPrefs
Сохранение числаЗагрузка со значением по умолчаниюРекордСохранение настроекПовторение: монеты в банке