Привет, в этой статья я покажу как добавить таймер в игру на Unity. Для примера возьму свою игру "Tower Up!". В ней таймер используется для обновления квестов. То есть когда он будет равен нулю, то квесты обновятся, добавляется он достаточно просто и щас вы в этом убедитесь :)
Разделим его создание на два этапа:
1) Визуальный
2) Программный
Визуальный этап
Открываем проект в Unity и первым делом разберёмся с визуальной частью, а потом уже напишем код.
1) Создаем текст для таймера
Для этого переходим в "Hierarchy" > "нажимаем на плюсик" > "UI" > "Text".
размещаем его там, где вы хотите, чтобы у вас находился таймер. Напишем в текст какое-нибудь время, чтобы он не был пустым)
На этом с визуальной часть закончим и перейдём к коду.
Программный этап
Создаём новый скрипт, для этого в нижней панели "Project" на пустом месте нажимаем правую кнопку мыши и в появившийся панели выбираем "Create" > "C# Script". Назовём его "Timer". Перекидываем его на текст, который мы только что создали.
Открываем скрипт "Timer" двойным нажатием левой кнопки мыши и пишем следующий код.
Объяснение кода
Для начала мы подключаем две библиотеки, это "UnityEngine.UI" и "System". Библиотека UI нам нужна для того, чтобы мы могли работать с UI элементами, а System нужна, чтобы пользоваться "DateTime", "TimeSpan".
Потом создаём 4 переменных:
1) msToWait - Сколько миллисекунд нужно отсчитать.
2) _Timer - Она отвечает за отображение времени в тексте, который мы создали до этого.
3) timer_restart - нужна для перезапуска времени, когда оно будет равно нулю.
4) lastOpen - сохраняем в неё время последнего входа в игру.
Метод Start:
- Первая строчка: записываем в переменную "lastOpen" время последнего входа в игру.
- Вторая строчка: переменной "_Timer", присваиваем компонент "Text".
- Третья строчка: проверяем была ли запущена игра до этого
Метод Update:
Проверяем равна ли переменная "timer_restart" "false". Потом проверяем, закончилось время или нет, и ниже пишем код самого таймера.
Метод IsReady():
В нем мы сохраняем последнее время входа и делаем проверку если время равно нулю, то перезапускаем таймер.
Итог
Сейчас таймер у нас отсчитывает 5 секунд для того, чтобы он отсчитывал 24 часа в окошко "MsToWait" нужно вставить число "8,64e+7".
Ну вот и всё, мы с вами добавили таймер в свою игру :)