Top.Mail.Ru
Ответы

Время в unity c#

Я хочу чтобы в определенное время(например с 26 декабря 17:00 до 27 декабря 17:30) можно было по нажатию на кнопку забрать приз(то есть выполнить функцию). Как я понимаю при нажатии на кнопку нужно каким-то образом узнать какое сейчас время и если оно попадает в этот промежуток то выполнялась функция

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

Да, твоё понимание верно. Привожу пример, как это можно сделать в Unity с использованием C#. Обрати внимание, что эта реализация зависит от времени компьютера, на котором запущена игра.

```csharp

12345678910111213141516171819202122232425262728293031323334
 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()`.

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