Как создать часы в Unity 5

Иногда, при создании проекта, есть необходимость в создании часов. Например, в игре есть потребность в часах, от значения которых будут зависеть некоторые другие параметры, которые будут влиять на игровую сцену или на самого персонажа.

В этой статье мы попробуем реализовать часы двух видов:

  1.  часы, которые отображают реальное время
  2.  часы, которые отображают вымышленное время.

Давайте начнем , запустим Unity и для начала настроим сцену.  Добавим на сцену компонент Canvas и в нем Panel с тремя элементами Text для отображения часов: часы, минуты, секунды. Должно, получится примерно как на скриншоте…

canvas

Далее создадим скрипт ClockReality и напишем такой код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;

public class ClockReality : MonoBehaviour {

float secondsNew = 60f, minutesNew = 60f, hoursNew = 12f;
public Text second;
public Text minutes;
public Text hours;

void Update () {

DateTime time = DateTime.Now;
second.text = ""+(time.Second * (60f / secondsNew));
minutes.text = "" + (time.Minute * (60f / minutesNew)) + "  :";
hours.text = "" + (time.Hour * (12f / hoursNew)) + "  :";
  }
}
Здесь все предельно просто, поместим это скрипт на компонент Panel и укажем наши Text (Часы, минуты, секунды) RealityClock

Это был первый метод создания часов реального времени. Возможно, вы скажете, а почему не сделать один компонент Text и не запихать все туда? Разделение на часы, секунды, и минуты даст возможность обращения к ним из других скриптов, например, если вы захотите сделать какой-нибудь параметр, который будет зависеть от текущего времени.

Второй метод создания «врущих» часов не сложнее. Продублируем нашу панель с компонентами Text и разместим чуть ниже.

newclock

Создадим новый скрипт NewClock и напишем такой код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;

public class NewClock : MonoBehaviour {

public Text second;
public Text minutes;
public Text hours;
public float param;
public float second1;
public float minuta1;
public float hours1;

void Update () {
  param -= Time.deltaTime;
  if (param <= 0)
   {
    param = 1;
    second1 = second1 + 1;
    }

  if (second1 >= 60)
   {
    minuta1 = minuta1 + 1;
    second1 = 0;
   }

  if (minuta1 >= 60)
   {
    hours1 = hours1 + 1;
    minuta1 = 0;
   }

  if (hours1 > 23) {
  hours1 = 0;
  }

 second.text = "" + second1;
 minutes.text = "" + minuta1 + "  :";
 hours.text = "" + hours1 + "  :";
 }
}

Здесь тоже ничего сложного, значение param уменьшается с каждой секундой и когда оно равно нулю, прибавляем одну секунду, а за ней и минуты и часы. Если необходимо замедлить или ускорить часы, просто изменим значение param=1 на другое (чем меньше, тем часы будут работать быстрее). Помещаем этот скрипт на вторую панель и так же, указываем три Text для часов.

Newclocksprew

После небольшой обработки сцены можно получить вот такие разные часы... clok На этом все, ждем ваших комментариев, предложений или изменений по данной статье, удачных проектов!
Похожие статьи
Unity 2d Как создать кликер
1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5

726 просмотров всего, 3 просмотров сегодня

0
#Unity 5#2D
Подробнее
Как заставить персонажа двигаться в Unity 2d
1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5

1,658 просмотров всего, 7 просмотров сегодня

0
#Unity 5#2D
Подробнее
2d анимация в unity
2 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 52 оценки, среднее: 4,50 из 5

701 просмотров всего, 3 просмотров сегодня

0
#Unity 5#2D
Подробнее
Как добавить видео в Unity 5
1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5

1,679 просмотров всего, 356 просмотров сегодня

0
#Unity 5
Подробнее
Добавить комментарий
Оцените статью
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Ваш e-mail не будет опубликован.