Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2018, 15:06   #1
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 221
Вопрос Unity, скрипт таймера, который бы начинал работать при старте сцены. А потом его можно было бы повторить

Помогите со скриптом. Нужен скрипт таймера, который бы начинал работать при старте сцены. А потом его можно было бы повторить по клику на кнопку.
Ну тоесть запускается приложение и таймер начинает отсчет сразу же, проходит время например 5 минут и он срабатывает выводя на экран например сообщение, потом кликаещь на это сообщение и скрипт начинает по новой отсчитывать новые 5 минут и так постоянно чтобы повторялось.
_Михаил_ вне форума Ответить с цитированием
Старый 03.06.2018, 17:54   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так сделайте с помощью корутинов, в чем проблема?

Я использовал такую обертку для таймеров:

Код:
using System;
using UnityEngine;

namespace ......
{
    public static class GameObjectExtensions
    { 
        public static void ExecuteAfterDelay(this MonoBehaviour obj, float delaySec, Action action)
        {
            obj.StartCoroutine(ExecuteAfterDelay(delaySec, action));
        }

        private static IEnumerator ExecuteAfterDelay(float delaySec, Action action)
        {
            yield return new WaitForSeconds(delaySec);

            action();
        }
    }
}
Код:
using UnityEngine; 

namespace .........
{
    public class Something : MonoBehaviour
    {
        void Start()
        {
            this.ExecuteAfterDelay(60 * 5f, () =>
            {
                Debug.Log("Hello");
            });

            this.ExecuteAfterDelay(60 * 5f, DoStuff);
        }

        private void DoStuff()
        {
            Debug.Log("Hello2");
        }
    }
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 03.06.2018 в 18:00.
Alex11223 вне форума Ответить с цитированием
Старый 03.06.2018, 21:49   #3
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 221
По умолчанию

я не особый знаток, что такое корутины не знаю даже. А зачем 2 скрипта? они зависимы друг от друга или нет? И что нужно написать вместо точек?
namespace .........

Понял, это имя скрипта.
_Михаил_ вне форума Ответить с цитированием
Старый 03.06.2018, 21:57   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Первый обертка для более удобного использования, второй пример использования.

namespace это namespace, обычно в любом нормальном проекте их используют. Например MyProject, MyProject.Weapons, MyProject.Ai, MyProject.Helpers.
Как и в самом Юнити UnityEngine, UnityEngine.Ui и т.п.
Но можно и убрать конечно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.06.2018, 09:38   #5
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 221
По умолчанию

не работают ваши скрипты
_Михаил_ вне форума Ответить с цитированием
Старый 04.06.2018, 10:00   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А у меня телепатор не работает.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.06.2018, 16:31   #7
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 221
По умолчанию

Я ясно написал что мне нужно, что не понятного то?

объясню еще раз тогда.

Нужно чтобы таймер отсчитав 5 минут активировал кнопку (ui Button) и сбросился, потом по нажатию на эту кнопку таймер опять начал отсчет этих же 5 минут и так повторяет бесконечно.
_Михаил_ вне форума Ответить с цитированием
Старый 04.06.2018, 17:09   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я про сообщение #5.
"не работает" не несет никакой полезной информации.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.06.2018, 20:36   #9
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 221
По умолчанию

Юнити выдает ошибку на их. У меня версия 5.6.6
_Михаил_ вне форума Ответить с цитированием
Старый 04.06.2018, 20:40   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Секретную?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задать двумерный массив, что бы его можно было видеть при нажатии на кнопочку добавлять в него элементы Ирина Андреевна Пс Lazarus, Free Pascal, CodeTyphon 1 25.08.2013 13:21
Как расположить дочернее окно поверх родительского, но так, чтобы можно было работать с родительским окном? ivan.tiran Общие вопросы Delphi 2 17.05.2012 23:46
Как лучше составить класс: "Химический элемент", чтобы потом из них можно было формировать формулу хим вещества? Casper-SC C# (си шарп) 2 19.01.2012 09:30
С++. Что и как можно внести в DLL и как потом с этим работать? dampirik Помощь студентам 5 21.09.2009 08:19
Как сделать чтобы двумерный массив который создается в функции можно было использовать в других функциях Olya90 Помощь студентам 4 20.04.2009 18:39