Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Гайды Мой Кабинет

Создание простого таймера в Unity

Приветствую начинающих разработчиков игр. В данной статье мы научимся создавать простой таймер, который будет иметь функции старта, паузы, и остановки таймера. Управляться таймер будет в ручном режиме, с помощью соответствующих кнопок.

Для начала создадим три кнопки с помощью окна 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().

Таймер готов! Данный таймер можно переделать таким образом, чтобы он работал не на увеличение значения таймера, а на уменьшение. Принцип такого таймера впринципе такой же.

Если Вам данная статья была полезна, буду рад вашим лайкам и комментариям :)

Вы можете отблагодарить автора донатом. ₽ Спасибо

Комментарии

2
Name_1068 1 год назад

первый

Name_1499 8 месяцев назад

Спасибо! Потерял сцену с огромным уровнем из-за падения Unity!

Гости не могут оставлять комментарии. Войдите на Сайт или Зарегистрируйтесь