public override void OnBeginDrag(PointerEventData eventData)
    {
        if (!horizontal && Math.Abs(eventData.delta.x) > Math.Abs(eventData.delta.y))
        {
            routeToParent = true;
        }
        else if (!vertical && Math.Abs(eventData.delta.x) < Math.Abs(eventData.delta.y))
        {
            routeToParent = true;
        }
        else
        {
            routeToParent = false;
        }

        if (routeToParent)
        {
            parentScrollRect?.OnBeginDrag(eventData);
        }
        else
        {
            base.OnBeginDrag(eventData);
        }
    }
Esempio n. 2
0
 public void OnBeginDrag(PointerEventData eventData)
 {
     MainScroll.OnBeginDrag(eventData);
 }
Esempio n. 3
0
        public void OnBeginDrag(PointerEventData eventData)
        {
            Vector2 touchDeltaPosition = Vector2.zero;

#if UNITY_EDITOR
            float delta_x = Input.GetAxis("Mouse X");
            float delta_y = Input.GetAxis("Mouse Y");
            touchDeltaPosition = new Vector2(delta_x, delta_y);
#elif UNITY_ANDROID || UNITY_IPHONE
            touchDeltaPosition = Input.GetTouch(0).deltaPosition;
#endif
            if (isVertical)
            {
                if (Mathf.Abs(touchDeltaPosition.x) > Mathf.Abs(touchDeltaPosition.y))
                {
                    isSelf = true;
                    var canvas = FindInParents <Canvas>(gameObject);
                    if (canvas == null)
                    {
                        return;
                    }
                    m_DraggingCard = createCard();
                    m_DraggingCard.transform.SetAsLastSibling();

                    m_DraggingCard.AddComponent <CIgnoreRayCast>();

                    if (dragOnSurfaces)
                    {
                        m_DraggingPlane = transform as RectTransform;
                    }
                    else
                    {
                        m_DraggingPlane = canvas.transform as RectTransform;
                    }

                    SetDraggedPosition(eventData);
                    if (m_OnBeginDragCallBack != null)
                    {
                        m_OnBeginDragCallBack();
                    }
                }
                else
                {
                    isSelf = false;
                    if (m_ScrollRect != null)
                    {
                        m_ScrollRect.OnBeginDrag(eventData);
                    }
                }
            }
            else
            {
                if (Mathf.Abs(touchDeltaPosition.x) < Mathf.Abs(touchDeltaPosition.y))
                {
                    isSelf = true;
                    var canvas = FindInParents <Canvas>(gameObject);
                    if (canvas == null)
                    {
                        return;
                    }
                    m_DraggingCard = createCard();
                    m_DraggingCard.transform.SetAsLastSibling();

                    m_DraggingCard.AddComponent <CIgnoreRayCast>();

                    if (dragOnSurfaces)
                    {
                        m_DraggingPlane = transform as RectTransform;
                    }
                    else
                    {
                        m_DraggingPlane = canvas.transform as RectTransform;
                    }

                    SetDraggedPosition(eventData);
                    if (m_OnBeginDragCallBack != null)
                    {
                        m_OnBeginDragCallBack();
                    }
                }
                else
                {
                    isSelf = false;
                    if (m_ScrollRect != null)
                    {
                        m_ScrollRect.OnBeginDrag(eventData);
                    }
                }
            }
            if (m_OnBeginScroll != null)
            {
                m_OnBeginScroll();
            }
        }
Esempio n. 4
0
 public void OnPointerDown(PointerEventData eventData)
 {
     parent.OnBeginDrag(eventData);
 }