Переключить bool каждые 0.5f?

В настоящее время я пытаюсь переключить, активен ли объект каждый пятый прирост переменной с именем multiplier, Эта переменная увеличивается на значение 0.1f время от времени в процессе обновления. По существу из 1.0f в 1.4f он должен быть неактивным, затем из 1.5f в 1.9f оно должно быть активным. Аналогично, из 2.0f в 2.4f он должен снова быть неактивным.

У меня была идея использовать модуль для переключения этого значения, но я не могу заставить его работать. Приведенный ниже код (и многие другие варианты, которые я пробовал) оставляет объект неактивным с 1.0f в 1.4f затем активен для 1.5f и обратно в неактивное состояние с 1.6f в 1.9f продолжая этот процесс.

bool modResult = (int)((multiplier * 10) % 5) == 0;
Active = multiplier > 1.0f && modResult && !Active;

Как я могу переключить мой bool на каждом пятом приращении без дополнительной переменной?

1 ответ

Решение

Не говоря уже о том, что поздний час замедляет мой мыслительный процесс. Оказывается, проблема в другом месте, после разбивки на следующее, та же самая проблема все еще возникает, так что я углубляюсь в это. Следующее будет переключаться каждый пятый:

if ((int)((multiplier * 10) % 5) == 0)
    Active = !Active;
Другие вопросы по тегам