【发布时间】:2019-10-02 22:09:39
【问题描述】:
我有一个滑块,它的最大值会根据当前所选音频剪辑的长度而变化。当用户右键单击并在某个区域向左/向右移动鼠标时,我正在更改滑块的值。我希望滑块根据用户自上一帧以来移动鼠标的距离移动得更快/更慢。问题是如果我的剪辑是 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);
}
}
}
【问题讨论】:
标签: c# unity3d slider percentage