Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

icq: 512-765
skype: alexp.frl
По умолчанию

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

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

Код:

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");
        }
    }
}


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

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

Понял, это имя скрипта.
_Михаил_ вне форума   Ответить с цитированием
Старый 03.06.2018, 22:57   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,343
Репутация: 3350

icq: 512-765
skype: alexp.frl
По умолчанию

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

namespace это namespace, обычно в любом нормальном проекте их используют. Например MyProject, MyProject.Weapons, MyProject.Ai, MyProject.Helpers.
Как и в самом Юнити UnityEngine, UnityEngine.Ui и т.п.
Но можно и убрать конечно.
Alex11223 на форуме   Ответить с цитированием
Старый 04.06.2018, 10:38   #5
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 197
Репутация: 48
По умолчанию

не работают ваши скрипты
_Михаил_ вне форума   Ответить с цитированием
Старый 04.06.2018, 11:00   #6
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,343
Репутация: 3350

icq: 512-765
skype: alexp.frl
По умолчанию

А у меня телепатор не работает.
Alex11223 на форуме   Ответить с цитированием
Старый 04.06.2018, 17:31   #7
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 197
Репутация: 48
По умолчанию

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

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

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

icq: 512-765
skype: alexp.frl
По умолчанию

Я про сообщение #5.
"не работает" не несет никакой полезной информации.
Alex11223 на форуме   Ответить с цитированием
Старый 04.06.2018, 21:36   #9
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 197
Репутация: 48
По умолчанию

Юнити выдает ошибку на их. У меня версия 5.6.6
_Михаил_ вне форума   Ответить с цитированием
Старый 04.06.2018, 21:40   #10
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,343
Репутация: 3350

icq: 512-765
skype: alexp.frl
По умолчанию

Секретную?
Alex11223 на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задать двумерный массив, что бы его можно было видеть при нажатии на кнопочку добавлять в него элементы Ирина Андреевна Пс 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


18:15.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru