Подсчет количества объектов на сцене => таймер с выводом => действие - Форум Игроделов
Ср, 23 Июл 2025, 15:12 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Подсчет количества объектов на сцене => таймер с выводом => действие
test_userДата: Вт, 11 Сен 2012, 16:36 | Сообщение # 1
Нет аватара
 
Сообщений: 19
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте, уважаемые форумчане.

Пожалуйста, подскажите примерную схему решения моего вопроса (ссылки на документацию Unity, на похожие скрипты, либо, отрывки конечного кода).

А задача следующая: подсчитать количество объектов (Cube) на сцене, и, если их количество превышает 25 - запустить таймер с обратным отсчетом (30 секунд), с выводом на GUI, и по истечении отведенного времени - производить некое действие.

Видел где-то давно, еще год назад, как делали меню-паузу остановкой времени. Сейчас хоть убей - ни вспомнить, где видел, ни сформулировать запрос в гугл не могу. А нужно это было для следующего: пока создаются Кубы - скорость времени равна нулю, а как заканчивается таймер - ее значение приравнивается единице.

Заранее спасибо за ваши ответы.
 
СообщениеЗдравствуйте, уважаемые форумчане.

Пожалуйста, подскажите примерную схему решения моего вопроса (ссылки на документацию Unity, на похожие скрипты, либо, отрывки конечного кода).

А задача следующая: подсчитать количество объектов (Cube) на сцене, и, если их количество превышает 25 - запустить таймер с обратным отсчетом (30 секунд), с выводом на GUI, и по истечении отведенного времени - производить некое действие.

Видел где-то давно, еще год назад, как делали меню-паузу остановкой времени. Сейчас хоть убей - ни вспомнить, где видел, ни сформулировать запрос в гугл не могу. А нужно это было для следующего: пока создаются Кубы - скорость времени равна нулю, а как заканчивается таймер - ее значение приравнивается единице.

Заранее спасибо за ваши ответы.

Автор - test_user
Дата добавления - 11 Сен 2012 в 16:36
waruiyumeДата: Вт, 11 Сен 2012, 18:03 | Сообщение # 2
Нет аватара
 
Сообщений: 85
Награды: 1
Репутация: 37
Статус: Offline
Code
trs = (Transform[])FindObjectsOfType(typeof (Transform));
Только зачем? Проще изменять переменную во время создания/удаления кубиков.




Сообщение отредактировал Doc - Ср, 12 Сен 2012, 00:12
 
Сообщение
Code
trs = (Transform[])FindObjectsOfType(typeof (Transform));
Только зачем? Проще изменять переменную во время создания/удаления кубиков.

Автор - waruiyume
Дата добавления - 11 Сен 2012 в 18:03
HunjethДата: Вт, 11 Сен 2012, 20:27 | Сообщение # 3
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
у тебя такими методами одни лаги будут
 
Сообщениеу тебя такими методами одни лаги будут

Автор - Hunjeth
Дата добавления - 11 Сен 2012 в 20:27
ЛевшаДата: Вт, 11 Сен 2012, 23:00 | Сообщение # 4
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Остановку времени (паузу), лучше свою писать, у меня после стандартной Time = 0 (вкл\выкл) экран цветными пятнами поплыл...
Больше экспериментировать не стал. smile


X.cor.R (Prologue)
 
СообщениеОстановку времени (паузу), лучше свою писать, у меня после стандартной Time = 0 (вкл\выкл) экран цветными пятнами поплыл...
Больше экспериментировать не стал. smile

Автор - Левша
Дата добавления - 11 Сен 2012 в 23:00
test_userДата: Ср, 12 Сен 2012, 05:20 | Сообщение # 5
Нет аватара
 
Сообщений: 19
Награды: 0
Репутация: 0
Статус: Offline
Quote
Только зачем? Проще изменять переменную во время создания/удаления кубиков.

Не, ребят. У меня кубики создаются в онлайне. smile Кто-то может подключиться позже, чем создана будет половина кубиков, и у него пойдет неверный отсчет. И поэтому надо при подключении уже считывать количество.

Quote
у тебя такими методами одни лаги будут

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

Quote
Остановку времени (паузу), лучше свою писать, у меня после стандартной Time = 0 (вкл\выкл) экран цветными пятнами поплыл...
Больше экспериментировать не стал. smile

Хорошо, попробую свою сделать, спасибо за предупреждение. smile

Попробую написать будущий скриптик текстом:

Code

Останавливаем время.

       Считаем количество объектов ('Cube'), присваиваем это значение переменной = var X.
           IF X > 25 THEN
              Старт таймера (сейчас ищу, как сделать).
          Присвоить значение таймера переменной = var Y.

           IF Y < 1 THEN
              Возвращаем время.


Правильно? smile


Сообщение отредактировал test_user - Ср, 12 Сен 2012, 05:29
 
Сообщение
Quote
Только зачем? Проще изменять переменную во время создания/удаления кубиков.

Не, ребят. У меня кубики создаются в онлайне. smile Кто-то может подключиться позже, чем создана будет половина кубиков, и у него пойдет неверный отсчет. И поэтому надо при подключении уже считывать количество.

Quote
у тебя такими методами одни лаги будут

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

Quote
Остановку времени (паузу), лучше свою писать, у меня после стандартной Time = 0 (вкл\выкл) экран цветными пятнами поплыл...
Больше экспериментировать не стал. smile

Хорошо, попробую свою сделать, спасибо за предупреждение. smile

Попробую написать будущий скриптик текстом:

Code

Останавливаем время.

       Считаем количество объектов ('Cube'), присваиваем это значение переменной = var X.
           IF X > 25 THEN
              Старт таймера (сейчас ищу, как сделать).
          Присвоить значение таймера переменной = var Y.

           IF Y < 1 THEN
              Возвращаем время.


Правильно? smile

Автор - test_user
Дата добавления - 12 Сен 2012 в 05:20
waruiyumeДата: Ср, 12 Сен 2012, 09:35 | Сообщение # 6
Нет аватара
 
Сообщений: 85
Награды: 1
Репутация: 37
Статус: Offline
Quote
Не, ребят. У меня кубики создаются в онлайне. smile Кто-то может подключиться позже, чем создана будет половина кубиков, и у него пойдет неверный отсчет. И поэтому надо при подключении уже считывать количество.

//_* они, что, от сырости заводятся, ведь загрузить Вы их, откуда-то смогли?




Сообщение отредактировал waruiyume - Ср, 12 Сен 2012, 09:41
 
Сообщение
Quote
Не, ребят. У меня кубики создаются в онлайне. smile Кто-то может подключиться позже, чем создана будет половина кубиков, и у него пойдет неверный отсчет. И поэтому надо при подключении уже считывать количество.

//_* они, что, от сырости заводятся, ведь загрузить Вы их, откуда-то смогли?

Автор - waruiyume
Дата добавления - 12 Сен 2012 в 09:35
ЛевшаДата: Ср, 12 Сен 2012, 10:48 | Сообщение # 7
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Quote (test_user)
таймера (сейчас ищу, как сделать).

Я бы завел себе булю:
Code
var pause : boolean = false;

И проверял бы ее во всех нужных процессах.


X.cor.R (Prologue)
 
Сообщение
Quote (test_user)
таймера (сейчас ищу, как сделать).

Я бы завел себе булю:
Code
var pause : boolean = false;

И проверял бы ее во всех нужных процессах.

Автор - Левша
Дата добавления - 12 Сен 2012 в 10:48
test_userДата: Ср, 12 Сен 2012, 11:30 | Сообщение # 8
Нет аватара
 
Сообщений: 19
Награды: 0
Репутация: 0
Статус: Offline
Quote (waruiyume)
//_* они, что, от сырости заводятся, ведь загрузить Вы их, откуда-то смогли?

Оу, даже не могу придумать другой способ... На ум приходит только подсчет кубиков при каждом OnNetwork.Initiate... Хотя даже не знаю, будет ли при этом работать. Скорее, даже каждый кадр придется проверять...

Quote (Левша)
Я бы завел себе булю:

Идея хорошая, но, кажется, это лишнее увеличение кода...

Открою карты biggrin
Нужно всего лишь при подключении игроков - делать ожидание, и, как только подключится больше 25 человек - пустить обратный отсчет (чтобы все сообразили, что делать), и после - стартовать пробежку.

Добавлено (12.09.2012, 11:25)
---------------------------------------------
Можно проверять каждые 5 секунд.

Добавлено (12.09.2012, 11:27)
---------------------------------------------
О, а вот и очень подходящий таймер.

Добавлено (12.09.2012, 11:30)
---------------------------------------------
В нем сразу и действие happy
А вот подсчет игроков остался.

 
Сообщение
Quote (waruiyume)
//_* они, что, от сырости заводятся, ведь загрузить Вы их, откуда-то смогли?

Оу, даже не могу придумать другой способ... На ум приходит только подсчет кубиков при каждом OnNetwork.Initiate... Хотя даже не знаю, будет ли при этом работать. Скорее, даже каждый кадр придется проверять...

Quote (Левша)
Я бы завел себе булю:

Идея хорошая, но, кажется, это лишнее увеличение кода...

Открою карты biggrin
Нужно всего лишь при подключении игроков - делать ожидание, и, как только подключится больше 25 человек - пустить обратный отсчет (чтобы все сообразили, что делать), и после - стартовать пробежку.

Добавлено (12.09.2012, 11:25)
---------------------------------------------
Можно проверять каждые 5 секунд.

Добавлено (12.09.2012, 11:27)
---------------------------------------------
О, а вот и очень подходящий таймер.

Добавлено (12.09.2012, 11:30)
---------------------------------------------
В нем сразу и действие happy
А вот подсчет игроков остался.


Автор - test_user
Дата добавления - 12 Сен 2012 в 11:30
seamanДата: Ср, 12 Сен 2012, 13:26 | Сообщение # 9
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Quote
У меня кубики создаются в онлайне. smile Кто-то может подключиться позже, чем создана будет половина кубиков, и у него пойдет неверный отсчет.

При подключении он что-то получает с сервера? Почему бы ему не получить количество уже созданных кубиков и на каком этапе отсчет с того же сервера?
 
Сообщение
Quote
У меня кубики создаются в онлайне. smile Кто-то может подключиться позже, чем создана будет половина кубиков, и у него пойдет неверный отсчет.

При подключении он что-то получает с сервера? Почему бы ему не получить количество уже созданных кубиков и на каком этапе отсчет с того же сервера?

Автор - seaman
Дата добавления - 12 Сен 2012 в 13:26
test_userДата: Ср, 12 Сен 2012, 16:53 | Сообщение # 10
Нет аватара
 
Сообщений: 19
Награды: 0
Репутация: 0
Статус: Offline
Да, действительно, он получает информацию об уже подключившихся игроках.
Если исходить из этого - как, примерно, будет выглядеть скрипт? Хоть словами помогите, пожалуйста.
 
СообщениеДа, действительно, он получает информацию об уже подключившихся игроках.
Если исходить из этого - как, примерно, будет выглядеть скрипт? Хоть словами помогите, пожалуйста.

Автор - test_user
Дата добавления - 12 Сен 2012 в 16:53
seamanДата: Чт, 13 Сен 2012, 08:24 | Сообщение # 11
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Ответ уже дан.
Quote
Проще изменять переменную во время создания/удаления кубиков.

Quote
Почему бы ему(клиенту) не получить количество уже созданных кубиков и на каком этапе отсчет с того же сервера?
 
СообщениеОтвет уже дан.
Quote
Проще изменять переменную во время создания/удаления кубиков.

Quote
Почему бы ему(клиенту) не получить количество уже созданных кубиков и на каком этапе отсчет с того же сервера?

Автор - seaman
Дата добавления - 13 Сен 2012 в 08:24
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025