void CleanSwipe() { gestureDone = Gesture.None; swipe = null; initialPosition = Vector2.zero; endPosition = Vector2.zero; swipeDirection = Vector2.zero; }
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(); } }