当我在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,但似乎无济于事。我可以为这里的内容提供完全不同的解决方案,因为它实际上并没有工作。我还需要能够区分两个手指旋转和两个手指水平滑动。