Итак, в моей игре куча Coroutines работает / работает нормально.
Однако, один из них для измерителя мощности, и вот проблема ...
Вы нажимаете кнопку, измеритель мощности использует сопрограмму, чтобы начать заполнять измеритель мощности. (представлен шириной красной панели)
Цель состоит в том, чтобы заставить измеритель заполняться достаточно быстро, чтобы вы не могли просто получить «полную мощность» каждый раз. Тем не менее, он также должен быть гладким и хорошо выглядеть.
Проблема, с которой я сталкиваюсь, заключается в том, что моя сопрограмма работает на максимальной скорости и не может двигаться быстрее, а индикатор движется слишком медленно. Таким образом, чтобы «ускорить» счетчик, я должен использовать увеличение красной ширины с увеличением шага.
Это работает, но это вызывает 2 проблемы.
- Это не выглядит гладко. (Выглядит неряшливо и нервно)
- Он пропускает целую кучу ценностей / возможностей. (Например, планка должна увеличиться на единицу «50», чтобы сделать ее достаточно быстрой, чтобы быть сложной. Но это глупо, потому что это дает только 12 возможностей при остановке счетчика. А их может быть до 600!)
Кто-нибудь сталкивался с этим раньше? Если да, то каков наилучший подход к созданию быстрого, но плавного измерителя мощности, который может по-прежнему использовать все возможные значения?
Спасибо,
Ben
Вот мой код:
public static IEnumerator StartPitchMeter(Player.Guy guy, float duration)
{
var dur = 0.01f;
do
{
yield return new WaitForSeconds(dur);
PlayerControls.PitchMeter += 50f;
if (PlayerControls.PitchMeter > 600) PlayerControls.PitchMeter = 0f;
PlayerControls.pitchMeter.sizeDelta = new Vector2(PlayerControls.PitchMeter, 50);
} while (!PlayerControls.stopPitch);
}