/// <summary> /// Determine whether stay in CLICK or move to SWIPE/ SCROLL /// WILL NOT move status from LONGPress to SWIPE/ SCROLL /// It is an One-way gate for state change /// </summary> /// <param name="_data"></param> public void DetermineClickOrDrag(PointerEventData _data) { // do nothing if already in status LongPress/ SwipeMenu/ Scroll if (myBoardStatus != TouchBoardStatus.SingleClick) { return; } // if total movement too little, wait for more data to determine if (acuumlatedSwipePixel.magnitude < minPixelLeaveClick) { return; } //cancel Long Press CountDown! myDnDHelper.CancelCountDownInvoke(); //Debug.Log("Drag/ Scroll"); _data.eligibleForClick = false; ////determine which direction is swiping if (acuumlatedSwipePixel.x > acuumlatedSwipePixel.y)// Left or Right { myBoardStatus = TouchBoardStatus.LeftRight; } else // Up or Down { myBoardStatus = TouchBoardStatus.UpDown; //Delayed Scrolling Setup from OnBeginDrag myScrollRect.OnBeginDrag(_data); _data.pointerDrag = myScrollRect.gameObject; } }
public override void OnPointerDown(PointerEventData eventData) { myBoardStatus = TouchBoardStatus.SingleClick; btnHolderWidth = BtnHolder.sizeDelta.x; widthToOpen = -btnHolderWidth * ratioToOpen; myDnDHelper.OnBtnPointerDown(() => { myBoardStatus = TouchBoardStatus.LongPress; }); base.OnPointerDown(eventData); }