Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Unity3d > Уроки По <<Unity3d>> > Простой таймер


Автор: DEXINDROVER Мар 1 2016, 18:40
В данном уроке рассказывается как в Unit при помощи скриптов
создавать простой таймер, используя Time.deltaTime и переменную типа float.


Воспользуемся сценой из предыдущего урока (с пустым игровым объектом,
генерирующим экземпляры префаба, т.е. BouncyBox).

user posted image

Создадим С#-скрипт и назовем его Timer. Добавим переменную myTimer, и напишем следующий код.


public float myTimer = 5.0f;

void Update() {
//Time.delaTime - время (сек), которое требовалось для отрисовки последнего кадра (read only)
myTimer -= Time.deltaTime;
if (myTimer <= 0.0f) {
Debug.Log("GAME OVER");
}
}


Сохраняем скрипт и переключаемся назад в Unity. Добавим скрипт к объекту GameObject.


Напомню, т.к. myTimer объявлена открытой (public), то в Inspector View вы можете менять ее начальное значение.

Жмем Play. Как только значение myTimer упадет до нуля, в статус баре вы увидите строку GAME OVER. Значение переменной myTimer будет продолжать опускаться (это можно увидеть в Inspector View).


Для того, чтобы переменная myTimer не опускалась ниже нуля, добавим еще одно ветвление в функцию Update(), в итоге мы получаем следующий код:

void Update () {
if(myTimer > 0){
myTimer -= Time.deltaTime;
}else if(myTimer <= 0){
Debug.Log("GAME OVER");
}
}


Нажмем Play и проследим за поведением переменной myTimer. Когда ее значение будет достаточно близким к нулю, то оно перестанет изменяться.

Автор: gorniks Дек 1 2017, 07:25
А меня зовут Вася

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)