Попытка переместить ползунок на основе процента перемещения экрана - PullRequest
0 голосов
/ 23 мая 2019

Поэтому я пытаюсь изменить значение ползунка, исходя из процента экрана, по которому вы перешли.Я хочу, если у вас пиксель топора меньше 100, значение ползунка будет 0, а если пиксель топора больше 1820, вы получите максимальное значение.Если вы используете любое другое значение, я хочу, чтобы normalizedValue ползунка было установлено в FingerXPos / (Screen.width-200).По крайней мере, я думаю, что математика верна.Я хочу, чтобы сенсорная область ползунка начиналась с 100 и заканчивалась в 1820. Если предыдущий x pos пользователя меньше, чем x pos, который представляет, где находится дескриптор в данный момент, который я пытаюсь вычислить, используя float CurrentXSliderPos = ((Screen.width-200) * SliderNormalizedValue) +100, и текущее положение x пальца больше текущей позиции ползунка x, или предыдущее значение x больше текущей позиции ползунка x, а текущее значение пальца x меньше текущей позиции x.нормализованное значение моего слайдера.Теперь моя проблема в том, что это, кажется, прекрасно работает для увеличения значения ползунка, но когда я пытаюсь уменьшить его, он поднимается один раз, а не падает.Я не уверен, как это исправить.Любая помощь приветствуется.Ниже приведен мой текущий код для обновления значения моего слайдера.

 private void TPUpdateValue()
     {
         float SliderNormalizedValue = SliderObj.normalizedValue;
         float CurrentXSliderPos = ((Screen.width-200) * SliderNormalizedValue)+100;
         if(FingerXPos>=100 && FingerXPos<=1820 && ( (PrevFingerXPos < CurrentXSliderPos && FingerXPos >= CurrentXSliderPos) || (PrevFingerXPos > CurrentXSliderPos && FingerXPos <=CurrentXSliderPos) ) )
         {
             SliderObj.normalizedValue = FingerXPos / (Screen.width-200);
         }
         else if (FingerXPos < 100 && ( (PrevFingerXPos < CurrentXSliderPos && FingerXPos >= CurrentXSliderPos) || (PrevFingerXPos > CurrentXSliderPos && FingerXPos <= CurrentXSliderPos) ) )
         {
             SliderObj.normalizedValue = 0;
         }
         else if (FingerXPos >1820 && ((PrevFingerXPos < CurrentXSliderPos && FingerXPos >= CurrentXSliderPos) || (PrevFingerXPos > CurrentXSliderPos && FingerXPos <= CurrentXSliderPos) ) )
         {
             SliderObj.normalizedValue = 1;
         }  
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...