Example #1
0
 void CleanSwipe()
 {
     gestureDone     = Gesture.None;
     swipe           = null;
     initialPosition = Vector2.zero;
     endPosition     = Vector2.zero;
     swipeDirection  = Vector2.zero;
 }
Example #2
0
    public void EndDragCallBack()
    {
        if (Application.isMobilePlatform)
        {
            if (Input.touchCount > 0)
            {
                for (int i = 0; i < Input.touchCount; i++)
                {
                    switch (Input.GetTouch(i).phase)
                    {
                    case TouchPhase.Ended:
                    case TouchPhase.Canceled:
                        endPosition = Input.GetTouch(i).position;
                        break;
                    }
                }
            }
        }
        else if (Application.isEditor)
        {
            if (Input.GetMouseButtonUp(0))
            {
                endPosition = Input.mousePosition;
            }
        }
        //Calculo direccion
        if (initialPosition != Vector2.zero && endPosition != Vector2.zero)
        {
            swipeDirection = endPosition - initialPosition;
        }

        if (Mathf.Abs(swipeDirection.x) >= minSwipeValue || Mathf.Abs(swipeDirection.y) >= minSwipeValue)
        {
            gestureDone = DetectGestureBasedOnSwipeDirection(swipeDirection);
        }
        else
        {
            gestureDone = Gesture.None;
        }

        if (gestureDone != Gesture.None)
        {
            //TODO: hacer una clase gesture (nodoswipe?) para que la tengan las flechas y se sepa  el gesto de la flecha activa
            swipe = new NodoSwipe(initialPosition, endPosition, gestureDone);
            if (swipe.Gesture == (Gesture)arrowNumber)
            {
                ///TODO: reiniciar valores de gesturedone y swipe
                PlayerController.Instance.ActivePower(swipe.Gesture);
                TurnOffArrow();
            }
            CleanSwipe();
        }
    }