当我用两根手指移动时捏住屏幕时,它工作正常,但是当一根手指触摸但没有移动而另一根手指移动时,捏回调没有调用。 当我不动两根手指时,我怎么能让它工作?
答案 0 :(得分:0)
有趣的问题,我在PinchRecognizer.cs中阅读了FingerGestures源代码,我发现了这些代码。
protected override bool CanBegin( PinchGesture gesture, FingerGestures.IFingerList touches )
{
if( !base.CanBegin( gesture, touches ) )
return false;
FingerGestures.Finger finger0 = touches[0];
FingerGestures.Finger finger1 = touches[1];
if( !FingerGestures.AllFingersMoving( finger0, finger1 ) )
return false;
if( !FingersMovedInOppositeDirections( finger0, finger1 ) )
return false;
float startGap = Vector2.SqrMagnitude( finger0.StartPosition - finger1.StartPosition );
float curGap = Vector2.SqrMagnitude( finger0.Position - finger1.Position );
if( FingerGestures.GetAdjustedPixelDistance( Mathf.Abs( startGap - curGap ) ) < ( MinDistance * MinDistance ) )
return false;
return true;
}
我认为这部分意味着FingerGesture定义它只适用于两个手指,你可以尝试删除它。
if( !FingerGestures.AllFingersMoving( finger0, finger1 ) )
return false;