Задать вопрос
@18382774

Почему оператор if не работает?

В моей игре враг появляется каждые timespeed секунд.
В Void Update() timespeed постоянно уменьшается и если timespeed == 0.5f
он должен перестать уменьшаться, но в Inspector в Unity видно, что он продолжает уменьшаться.Вот мой код:
public float timespeed = 1.5f;
    void Update()
    {
        if(timespeed != 0.5f)
        {
            timespeed = timespeed - 0.000002f;
        }
        else if(timespeed == 0.5f)
        {
            timespeed = timespeed;
        }
   }
  • Вопрос задан
  • 258 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
Потому что он у вас не равен 0,5, а равен какому-нибудь 0,49999999999999
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
Потому что нельзя так сравнивать вещественные числа.
Самая частая ошибка, которая встречается у абсолютно всех кодеров.
https://0.30000000000000004.com/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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