Exemplo n.º 1
0
        private void TryCreateGestureTwoFingerGestureOnTouchBeganForTouchIndex <T>(int touchIndex, Func <Touch, Touch, T>
                                                                                   createGestureFunction) where T : BaseGesture
        {
            if (GestureTouches.touches[touchIndex].phase != null)
            {
                return;
            }
            Touch touch = GestureTouches.touches[touchIndex];

            if (GestureTouches.IsFingerIdRetained(touch.fingerId) || GestureTouches.IsTouchOffScreenEdge(touch,
                                                                                                         edgeThresholdInches))
            {
                return;
            }
            for (int i = 0; i < GestureTouches.touches.Length; i++)
            {
                if (i != touchIndex)
                {
                    if (i >= touchIndex || GestureTouches.touches[i].phase != null)
                    {
                        Touch touch2 = GestureTouches.touches[i];
                        if (!GestureTouches.IsFingerIdRetained(touch2.fingerId) && !GestureTouches.IsTouchOffScreenEdge(touch2, edgeThresholdInches))
                        {
                            m_Gestures.Add(createGestureFunction(touch, touch2));
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public static bool IsTouchOffScreenEdge(Touch touch, float edgeSlopInches)
        {
            float num  = GestureTouches.InchesToPixels(edgeSlopInches);
            bool  flag = touch.position.x <= num;

            flag |= (touch.position.y <= num);
            flag |= (touch.position.x >= (float)Screen.width - num);
            return(flag | touch.position.y >= (float)Screen.height - num);
        }
Exemplo n.º 3
0
 private void Awake()
 {
     if (s_instance != null)
     {
         Debug.LogError("More than one GestureTouches s_instance was found in your scene. Ensure that there is only one GestureTouches.");
         base.enabled = false;
         return;
     }
     s_instance = this;
 }
Exemplo n.º 4
0
 protected void TryCreateOneFingerGestureOnTouchBegan <T>(Func <Touch, T> createGestureFunction) where T :
 BaseGesture
 {
     for (int i = 0; i < GestureTouches.touches.Length; i++)
     {
         Touch touch = GestureTouches.touches[i];
         if (touch.phase == null && !GestureTouches.IsFingerIdRetained(touch.fingerId) && !
             GestureTouches.IsTouchOffScreenEdge(touch, edgeThresholdInches))
         {
             m_Gestures.Add(createGestureFunction(touch));
         }
     }
 }