Почему условие работает по разному в update и FixedUpdate?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Почему условие работает по разному в update и FixedUpdate?

Сообщение NOVA 30 июн 2023, 20:09

Вот простое условие.
Синтаксис:
Используется csharp
if (EndMove)
        {
            if (Rect.anchoredPosition != EndPos)
            {
                Rect.anchoredPosition = Vector2.MoveTowards(Rect.anchoredPosition, EndPos, 5000 * Time.deltaTime);
                Debug.Log("EndMove=" + Rect.anchoredPosition);
            }
            else
            {
                EndMove = false;
                Rect.anchoredPosition = StartPos;
            }
        }

В FixedUpdate нивкакую не работает else. Все значения доехавшего объекта через Debug.Log соответствуют нужному, но else нивкакую не срабатывает. Прям до бесконечности не реагирует на это условие никак.
В Update же работает чётко.
Аватара пользователя
NOVA
Адепт
 
Сообщения: 1741
Зарегистрирован: 17 май 2011, 11:45
Откуда: Дядя Саша from Mother Russia

Re: Почему условие работает по разному в update и FixedUpdate?

Сообщение 1max1 01 июл 2023, 00:20

Ты лучше в лог выведи вот это Rect.anchoredPosition != EndPos, а не то что ты вывел, там может быть ошибка точности флоат. А еще лучше, то что у тебя в else перенеси в блок if, делай проверку мосле мува, вполне вероятно кто-то другой еще влияет на твою позицию и мешает сработать елс.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 21