如何识别两指旋转统一C#

时间:2019-02-10 03:28:14

标签: c# unity3d touch gesture gesture-recognition

当我在Sensel morph触摸板上旋转两个手指时,我试图实现旋转对象。

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;
   }

 }

我遇到的问题是转弯检测似乎不太准确。当我顺时针旋转手指时,通常会说是逆时针旋转,反之亦然。我怎样才能解决这个问题?我知道感官变体有很多要点,并且非常敏感,但是我尝试过调整rotAngleMinimum,但似乎无济于事。我可以为这里的内容提供完全不同的解决方案,因为它实际上并没有工作。我还需要能够区分两个手指旋转和两个手指水平滑动。

0 个答案:

没有答案