У меня есть ползунок, максимальное изменение значения которого зависит от длины выбранного в данный момент аудиоклипа.Я изменяю значение ползунка, когда пользователь щелкает правой кнопкой мыши и перемещает мышь влево / вправо в определенной области.Я хочу, чтобы ползунок двигался быстрее / медленнее в зависимости от расстояния, на которое пользователь переместил мышь с момента последнего кадра.Проблема в том, что если мой клип скажет 135,35 секунды, то слайдер будет двигаться очень медленно.Это хорошо работает только с 1-секундным клипом.Я думаю, что мне нужно перевести это на другой процент в зависимости от моего движения, но у меня много проблем с правильной математикой.Я хочу, чтобы ползунок перемещал одинаковое количество расстояний для каждого значения расстояния, которое пользователь перемещает своей мышью, независимо от того, какое максимальное значение.Любая помощь приветствуется.Ниже приведен мой текущий код, но он движется слишком быстро, когда клип составляет 1 секунду, и все еще немного медленный для клипа 135,35 секунды.
private void UpdateValue()
{
float DistanceMoved = FingerXPos - PrevFingerXPos;
float PercentageOfScreenMoved = Mathf.Abs(DistanceMoved) / Screen.width;
if (PercentageOfScreenMoved >= 0.005)
{
float percentangeChange = ((100 * PercentageOfScreenMoved) / SliderObj.maxValue);
if (DistanceMoved < 0)//slide to the left
{
SliderObj.value -= (percentangeChange*100);
}
else
{
SliderObj.value += (percentangeChange*100);
}
}
}