Size: a a a

Unity Floodилка

2021 February 25

P

Phantom in Unity Floodилка
Леха (Felix)
короч Time.deltaTime явно больше чем время до следующего кадра
Засекаешь время
источник

P

Phantom in Unity Floodилка
Леха (Felix)
должно было вернуть приблизительно 3
Запускаешь секундомер
yield return ....
Берешь значение, вычитаешь из него время ожидания
источник

P

Phantom in Unity Floodилка
И делаешь WaitForSeconds(delta - frameTime)
источник

🗿

🗿🗿🗿 Ilushkins 🗿🗿🗿... in Unity Floodилка
Леха (Felix)
Чистый асинк тоже самое выдает?
источник

G

Graf in Unity Floodилка
Ну для начала мб проверь значение time после цикла
источник

G

Gena in Unity Floodилка
Привет
источник

Л(

Леха (Felix) in Unity Floodилка
🗿🗿🗿 Ilushkins 🗿🗿🗿
Чистый асинк тоже самое выдает?
Чистый асинк не пробовал, но что-то мне не очень хочется выставлять задержку thread.Sleep(ом)  но думаю там не должно быть таких проблем. Как я уже понял, время уходит на то, чтобы вернуть управление после ожидания, так-как оно дожидается следующего фрейма
источник

Л(

Леха (Felix) in Unity Floodилка
Ну буду экспериментировать пока самый действенный способ это отнимать 0.01секунду каждый раз после waitForSeconds, для моего случая 0.01 это примерное время задержки во всех вызываемых yield return WaitForSeconds
источник

Л(

Леха (Felix) in Unity Floodилка
Но я ещё не проверял на разных значениях fps, как мне кажется эта цифра должна меняться при разных значениях частоты кадров
источник

AS

Anton Smetanin in Unity Floodилка
Леха (Felix)
Переслано от Леха (Felix)
Ну так если WaitForSeconds не попадает ровно на кадр, то ему придётся ждать следующего
источник

AS

Anton Smetanin in Unity Floodилка
У тебя там очень быстро большая погрешность накопится
источник

Л(

Леха (Felix) in Unity Floodилка
Да
источник

AS

Anton Smetanin in Unity Floodилка
Используй просто yield return null
источник

Л(

Леха (Felix) in Unity Floodилка
И ожидать циклом?
источник

AS

Anton Smetanin in Unity Floodилка
Да
источник

AS

Anton Smetanin in Unity Floodилка
Ну либо считай по-другому
источник

AS

Anton Smetanin in Unity Floodилка
У тебя проблема в том, что ты прибавляешь delta каждый раз, а проходит больше
источник

AS

Anton Smetanin in Unity Floodилка
Точнее не проблема, а расхождение
источник

AS

Anton Smetanin in Unity Floodилка
источник

AS

Anton Smetanin in Unity Floodилка
Я бы на твоём месте вообще сложение не использовал, а делил бы прошедшее время на общее и получал проценты, а по ним уже считал количество патронов
источник