Приветствую начинающих разработчиков игр. В данной статье мы научимся создавать простой таймер, который будет иметь функции старта, паузы, и остановки таймера. Управляться таймер будет в ручном режиме, с помощью соответствующих кнопок.
Для начала создадим три кнопки с помощью окна Hierarchy, выбрав UI — Button - TextMeshPro. Так же создадим и текстовое поле, в котором будет отображаться время нашего таймера: UI — Text - TextMeshPro.
Текст для трёх кнопок укажем следующий: "Старт", "Пауза", "Стоп". А для текстового поля просто укажем 0. Выглядеть это будет примерно так:
Чтобы наши кнопки умели запускать и останавливать таймер, необходимо для них написать соответствующие функции. Для этого с помощью окна Project создадим C# скрипт, и дадим ему название, например, Timer. Этот скрипт присвойте любому игровому объекту, например вашей камере, или канвасу.
Содержание данного скрипта следующее:
using UnityEngine;
using TMPro;
public class Timer : MonoBehaviour
{
public float time = 0;
public bool start = false;
public TextMeshProUGUI value;
public void StartTimer()
{
start = true;
}
public void PauseTimer()
{
start = false;
}
public void StopTimer()
{
start = false;
time = 0;
value.text = time.ToString("0.00");
}
void Update()
{
if (start == true)
{
time += Time.deltaTime;
value.text = time.ToString("0.00");
}
}
}
Обратите внимание, что во второй строчке мы подключили TMPro, поскольку мы работаем с UI элементами типа TMPro.
В строке #6-8 мы объявили три переменные:
- time хранит время самого таймера.
- start - хранит информацию о том, запущен ли таймер или остановлен.
- value - хранит ссылку на UI элемент Text - TextMeshPro. Не забудьте перетащить данный объект из окна Hierarchy в поле value скрипта Timer, окна Inspector.
Далее мы создали три функции для наших кнопок:
- StartTimer() - функция для запуска таймера.
- PauseTimer() - функция для паузы таймера.
- StopTimer() - функция для полной остановки таймера, и сбрасывания значение таймера до нуля.
Ну и в функции Update() мы проверяем, если таймер запущен, то увеличиваем значение time, и выводим это значение на экран, предварительно преобразовав числовое значение time в строковое, с помощью метода ToString.
Вся основная работа сделана. Осталось прикрепить к нашим кнопкам, наши функции из скрипта. Для этого сделаем 2 простых действия:
- Нажмём на нашу кнопку с текстом "Старт", и в инспекторе в поле On Click() перетащим наш объект, на котором имеется наш скрипт Timer. В моём случаем это объект Canvas.
- Нажмём на No Function, и выберем там Timer - StartTimer().
Такие же действия проделаем и с кнопками "Пауза" и "Стоп", присвоив им оставшиеся функции: Timer - PauseTimer() и Timer - StopTimer().
Таймер готов! Данный таймер можно переделать таким образом, чтобы он работал не на увеличение значения таймера, а на уменьшение. Принцип такого таймера впринципе такой же.
Если Вам данная статья была полезна, буду рад вашим лайкам и комментариям :)
первый