Время в unity c#
Я хочу чтобы в определенное время(например с 26 декабря 17:00 до 27 декабря 17:30) можно было по нажатию на кнопку забрать приз(то есть выполнить функцию). Как я понимаю при нажатии на кнопку нужно каким-то образом узнать какое сейчас время и если оно попадает в этот промежуток то выполнялась функция
Да, твоё понимание верно. Привожу пример, как это можно сделать в Unity с использованием C#. Обрати внимание, что эта реализация зависит от времени компьютера, на котором запущена игра.
```csharp
using System;
using UnityEngine;
public class TimeBasedReward : MonoBehaviour
{
// Кнопка должна быть связана с этим методом
public void OnButtonClick()
{
// Получаем текущее время
DateTime now = DateTime.Now;
// Задаем начальное и конечное время
DateTime startTime = new DateTime(now.Year, now.Month, 26, 17, 0, 0);
DateTime endTime = new DateTime(now.Year, now.Month, 27, 17, 30, 0);
// Проверяем, попадает ли текущее время в данный промежуток
if (now >= startTime && now <= endTime)
{
GiveReward();
}
else
{
Debug.Log("Сейчас не время для получения приза.");
}
}
// Метод, который выполняется для выдачи приза
private void GiveReward()
{
Debug.Log("Вы получили приз!");
// Сюда добавь свою логику выдачи приза
}
}
```
Этот код проверяет текущее время и смотрит, попадает ли оно в заданный промежуток времени. Если да, то выполняет функцию `GiveReward()`. Скрипт следует прикрепить к объекту, который отвечает за кнопку. Кнопка должна вызывать метод `OnButtonClick()`.
Пожалуйста, учти, что этот код будет работать на любом компьютере, но в соответствии с его системным временем. Если игра должна использовать универсальное время (вне зависимости от времени пользователя), тебе потребуется внедрить серверное время.