private void OnDownHandler(UUIEventListener listener) { int touchID = listener.pointerEventData.pointerId; Vector3 pos = listener.pointerEventData.position; m_panelTouchPosDict[touchID] = pos; if (m_panelTouchPosDict.Count == 2) { Vector2 from = new Vector2(); Vector2 to = new Vector2(); int index = 0; foreach (var touch in m_panelTouchPosDict) { m_rawScaleFinger[index] = touch.Key; if (index++ == 0) { from = touch.Value; } else { to = touch.Value; } } m_rawRect = UIHelper.GetRect(from, to); } }
/// <summary> /// 暂时废弃,不使用这种距离的方式 /// </summary> /// <param name="listener"></param> private void OnDragHandler(UUIEventListener listener) { Vector2 delta = listener.pointerEventData.delta; Vector2 pos = listener.pointerEventData.position; Vector2 lastPos = pos - delta; int id = listener.pointerEventData.pointerId; m_panelTouchPosDict[id] = pos; if (m_panelTouchPosDict.Count >= 2) // scroll { float dragToOtherDist = 0; Vector2 otherPos = Vector2.zero; int otherCount = 0; var itr = m_panelTouchPosDict.GetEnumerator(); while (itr.MoveNext()) { if (itr.Current.Key != id) { otherPos += itr.Current.Value; otherCount++; } } otherPos /= otherCount; dragToOtherDist = Vector2.Distance(pos, otherPos) - Vector2.Distance(lastPos, otherPos); if (onFingerScroll != null) { onFingerScroll.Invoke(dragToOtherDist); } } else { onFingerDrag.Invoke(delta); } }
private void OnScrollHandler(UUIEventListener listener) { if (onFingerScroll != null) { float scale = 1 + listener.pointerEventData.scrollDelta.y * 0.1f; onFingerScroll.Invoke(scale); } }
private void OnClosePress(UUIEventListener listener) { if (!HasStyle(MessageBoxStyle.Close)) { return; } Callback(MessageBoxResultType.Close); Hide(); }
static public UUIEventListener Get(GameObject go) { UUIEventListener listener = go.GetComponent <UUIEventListener>(); if (listener == null) { listener = go.AddComponent <UUIEventListener>(); } return(listener); }
private void OnUpHandler(UUIEventListener listener) { int touchID = listener.pointerEventData.pointerId; m_panelTouchPosDict.Remove(touchID); if (m_panelTouchPosDict.Count > 0) { return; } float dragDist = Vector2.Distance(listener.pointerEventData.pressPosition, listener.pointerEventData.position); if (onAllFingersUp != null) { onAllFingersUp.Invoke(dragDist); } }
private void OnDragHandlerScale(UUIEventListener listener) { int id = listener.pointerEventData.pointerId; Vector2 delta = listener.pointerEventData.delta; Vector2 pos = listener.pointerEventData.position; Vector2 lastPos = pos - delta; m_panelTouchPosDict[id] = pos; if (m_panelTouchPosDict.Count < 2 || (m_rawScaleFinger[0] != id && m_rawScaleFinger[1] != id)) { if (onFingerDrag != null) { onFingerDrag.Invoke(delta); } return; } Vector2 sndPos = Vector2.zero; if (m_rawScaleFinger[0] == id) { sndPos = m_panelTouchPosDict[m_rawScaleFinger[1]]; } else { sndPos = m_panelTouchPosDict[m_rawScaleFinger[0]]; } TRect lastRect = UIHelper.GetRect(lastPos, sndPos); TRect curRect = UIHelper.GetRect(pos, sndPos); float lastScale = GetRectScale(ref lastRect, ref m_rawRect); float curScale = GetRectScale(ref curRect, ref m_rawRect); if (onFingerScroll != null) { onFingerScroll.Invoke(curScale / lastScale); } }
private void OnCancelPress(UUIEventListener listener) { Callback(MessageBoxResultType.Cancel); Hide(); }
private void OnOKPress(UUIEventListener listener) { Callback(MessageBoxResultType.OK); Hide(); }