Приветствую. При Input.GetMouseButtonDown(0) вызывается эта корутина. Если сделать второй клик

в то время когда значение fillAmount меняется, то насколько я понял первая корутина останавливается и начинается вторая.

Те было значение 1. После клика должно за секунду(например) стать 0.8. Если сделать ещё один клик когда значение равно 0.9(например), то итоговое значение будет 0.7. Как сделать так чтобы итоговое стало 0.6?
Шаг 0.2.

Вопрос простой, буду раз помощи)

25 ответов

22 просмотра

Нет, первая корутина не останваливается. Её надо вручную останаливать через StopCorutine(); - вариантов несколько, смотри в документации как

XXX- Автор вопроса
Mikhail Suvorov
Нет, первая корутина не останваливается. Её надо в...

Я не хочу останавливать, хотелось бы чтобы 1ая закончилась затем запускалась вторая. Либо как то учитывалось и результат был логическим, те два клика по 0.2 значит с 1 до 0.6 результаты

XXX
Я не хочу останавливать, хотелось бы чтобы 1ая зак...

Если первая отработает своё время до того как ты запустишь следующую, то первая автоматичеки остановиться. Иначе тебе придётся останавливать первую. И там уже делать что тебе надо

XXX- Автор вопроса
Mikhail Suvorov
Если первая отработает своё время до того как ты з...

Сорян что туплю, но как реализовать, чтобы запуская вторую в то время когда первая ещё работает результат был верным. Если вторую запустить после того как первая закончила работу то вопросов нет, работает как надо.

Если я тебя правильно понял. То тебе надо просто через StopCorutine остановить первую и запустить снова вторую либо с 0 либо с предыдущего значения до 1

XXX- Автор вопроса
Mikhail Suvorov
Если я тебя правильно понял. То тебе надо просто ч...

Логично, да. Работает первая, запускаю вторую: останавливаю первое, беру значение fillAmount в момент остановки — это будет значение v_start для 2ой корутины, а v_end будет v_start - v_end(первой корутины) + v_end первой.

XXX- Автор вопроса
Mikhail Suvorov
Кинь код.

https://pastebin.com/CUBubWay

XXX- Автор вопроса
Mikhail Suvorov
Почему бы просто не v_end - для второй

Потому что v_start для 2ой корутины меньше чем значение fillAmount во время остановки первой). Если не учитывать этот момент будет "прыжок"

XXX
https://pastebin.com/CUBubWay

Вот попробуй такой вариант https://pastebin.com/05m8eUyB

Зачем ? По идее всё должно отработать норм. если только чтобы GC подхватил её

XXX- Автор вопроса
Mikhail Suvorov
Зачем ? По идее всё должно отработать норм. если ...

К сожалению нет(, добавил print(barImage.fillAmount); для наглядности. Результат должен быть 0.6, так как запущены два корутины с шагом 0.2 — DoFillAmount(barImage, barImage.fillAmount, barImage.fillAmount - 0.2f, 1f);

Mikhail Suvorov
Зачем ? По идее всё должно отработать норм. если ...

Если корутину стопнуть, то значение переменной _fillAmount не становится null. Но корутина стопнется, да. В данном случае, код сработает. Но при нажатии все равно будет стопаться корутина, которая и так могла ранее остановиться, так как переменная не нул. В некоторых случаях незнание этого нюанса не даст нужного результата =). Это я просто душню. В актуальном вопросе не надо, но вот в моем примере очень надо было)

Погоди, ты делаешь что типо откусывания картинки ? На каждый клин всё меньше и меньше должно быть ?

XXX
Да

Ок, тогда сейчас перепишу =)

https://pastebin.com/TBrd0VMM

XXX- Автор вопроса
Mikhail Suvorov
https://pastebin.com/TBrd0VMM

Это кажется костыли, но работает вроде. Хотя если 3 раза быстро нажать то будет значение такое как и если нажать 2 раза.

XXX- Автор вопроса
XXX- Автор вопроса

В дотвин есть OnTweenStop какой то? Те события вызывается когда твин стопается. Это поможет решить проблему, можно сохранить значения нужные для 2го запуска твина

XXX- Автор вопроса
Mikhail Suvorov
Там проверка есть IsPlaying

Ладно, покопаюсь. Спасибо большое)

Похожие вопросы

Обсуждают сегодня

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
12
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
Карта сайта