Как распознать единство вращения двух пальцев c # - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь добиться поворота объекта, когда на сенсорной панели Sensel поворачивается два пальца.

private void RotateGesture(){

  if(TwoFingersDown){
       if(!rotating){
         startAngle = new Vector2(FingerTwoXPos,FingerTwoYPos) - new Vector2(FingerOneXPos, FingerOneYPos);
         rotating = startAngle.sqrMagnitude > rotationWidth * rotationWidth;
       }

      else{
           curAngle = new Vector2(FingerTwoXPos,FingerTwoYPos) - new Vector2(FingerOneXPos, FingerOneYPos);
           var angleOffset = Vector2.Angle(startVector, currVector);
           var LR = Vector3.Cross(startVector, currVector);

           if (angleOffset > rotAngleMinimum) {
                  startAngle = curAngle;
                  rotating = startAngle.sqrMagnitude > rotationWidth * rotationWidth;
                   if (LR.z > 0) {
                         // Anticlockwise turn equal to angleOffset.
                        Debug.Log("AntiClockwise turn");
                    } 
                  else if (LR.z < 0) {
                     // Clockwise turn equal to angleOffset.
                     Debug.Log("Clockwise turn");
                   }
               }
         }

   else{
        rotating = false;
   }

 }

Проблема, с которой я столкнулся, заключается в том, что обнаружение поворота не кажется очень точным.Часто это говорит против часовой стрелки, когда я поворачиваю пальцы по часовой стрелке или наоборот.Как я могу это исправить?Я знаю, что sensel morph имеет много точек и очень чувствителен, но я попытался настроить rotAngleMinimum, и это, похоже, не помогает.Я в порядке с совершенно другим решением, чем у меня здесь, так как оно на самом деле не работает в любом случае.Мне также нужно уметь различать вращение двумя пальцами и горизонтальное движение двумя пальцами.

...