- delay, таймер - то при повторном обращении к ней, она начинает сначала. Т.е. если поставить delay на 2 секунды, и обращаться к функции каждую секунду, то логика после delay никогда не сработает.
Это работает так же для прочих функций, не использующих время? Например, у меня есть функция без какого либо использования времени. Без таймеров, делеев и прочего.
Если в игре так совпадет, что ее вызовут 2 раза, почти одновременно, то она НЕ будет сбрасываться? Оба раза посчитает (т.к. компилятор анрила их в очереди расположит) или все же сбросит?
Речь идет прям о миллисекундном совпадении, хочу понять, возможен ли с этим баг или нет.
Предлагаю провести експеримент: 1. Запихиваете в тик delay на условно 5 секунд и после него принт на экран. По тому как написано, на экране ничего не будет, тик ведь точно чаще чем раз в 5 секунд. А на самом деле как? 2. Разместить в тик подряд выполнение двух функций. Сколько их выполниться за один тик? Выполниться ли их тик*2 раз или тик раз? Или сколько раз?
Я раньше целый кусок БП переделывал по той причине, что повторный вызов функции до ее окончательного исполнения сбрасывал результат. Надо будет вновь гайды поискать по времени, кажется, я там многое не понимаю.
С самого начала ошибка в описании, вышесказанное относится только к retriggerable delay. По-поводу остального прям улыбнулся )) "почти одновременно" - это как? )) но нет, при нормальном написании логики с этим не может быть проблем в твоём случае
Спасибо. Я опасался случая когда, допустим в главном здании игрока функция "заспавнить юнит". И к ней, так выйдет, в одну миллисекунду 2+ БП обратятся одновременно.
Здесь вообще некорректно оперировать понятием времени, второй вызов произойдет только тогда, когда закончится первый, т.е. произойдет выход из функции. Это в случае, если ты не используешь латентные/асинхронные функции. Если используешь, тогда ты уже просто заранее должен понимать, что повторный вызов функции может произойти, когда операция ещё выполняется и принять меры. Здесь уже от реализации функции все зависит. Delay и Ret... Delay неплохой пример того как разные функции могут себя вести при повторном вызове
Обсуждают сегодня