Example #1
0
        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);
            }
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
 private void OnScrollHandler(UUIEventListener listener)
 {
     if (onFingerScroll != null)
     {
         float scale = 1 + listener.pointerEventData.scrollDelta.y * 0.1f;
         onFingerScroll.Invoke(scale);
     }
 }
Example #4
0
 private void OnClosePress(UUIEventListener listener)
 {
     if (!HasStyle(MessageBoxStyle.Close))
     {
         return;
     }
     Callback(MessageBoxResultType.Close);
     Hide();
 }
Example #5
0
        static public UUIEventListener Get(GameObject go)
        {
            UUIEventListener listener = go.GetComponent <UUIEventListener>();

            if (listener == null)
            {
                listener = go.AddComponent <UUIEventListener>();
            }
            return(listener);
        }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
            }
        }
Example #8
0
 private void OnCancelPress(UUIEventListener listener)
 {
     Callback(MessageBoxResultType.Cancel);
     Hide();
 }
Example #9
0
 private void OnOKPress(UUIEventListener listener)
 {
     Callback(MessageBoxResultType.OK);
     Hide();
 }