コード例 #1
0
ファイル: LeanDrag.cs プロジェクト: Khejanin/Nominando
        public void OnBeginDrag(PointerEventData eventData)
        {
            VerticalClamp   = false;
            HorizontalClamp = false;
            if (hoverOverObject)
            {
                hoverOverObject.isOccupied = false;
            }
            oldHoverOverObject = hoverOverObject;
            // Only allow dragging if certain conditions are met
            if (MayDrag(eventData) == true)
            {
                var vector = default(Vector2);
                var target = TargetTransform;

                // Is this pointer inside this rect transform?
                if (RectTransformUtility.ScreenPointToLocalPointInRectangle(target, eventData.position, eventData.pressEventCamera, out vector) == true)
                {
                    dragging        = true;
                    currentPosition = new Vector2(target.anchoredPosition.x, target.anchoredPosition.y);
                    initialPosition = currentPosition;

                    if (beginTransitions != null)
                    {
                        beginTransitions.Begin();
                    }

                    if (onBegin != null)
                    {
                        onBegin.Invoke();
                    }
                }
            }
        }
コード例 #2
0
ファイル: LeanDrag.cs プロジェクト: Khejanin/Nominando
 private void OnTriggerEnter2D(Collider2D other)
 {
     if (other.gameObject.CompareTag("DragBox"))
     {
         if (!other.gameObject.GetComponent <LeanDragToTarget>().isOccupied)
         {
             hoverOverObject = other.gameObject.GetComponent <LeanDragToTarget>();
         }
     }
 }
コード例 #3
0
ファイル: LeanDrag.cs プロジェクト: Khejanin/Nominando
 private void OnTriggerExit2D(Collider2D other)
 {
     if (other.gameObject.CompareTag("DragBox"))
     {
         var hover = other.gameObject;
         if (hover != null && hover.GetComponent <LeanDragToTarget>() == hoverOverObject)
         {
             hoverOverObject = null;
         }
     }
 }
コード例 #4
0
ファイル: LeanDrag.cs プロジェクト: Khejanin/Nominando
        public void OnEndDrag(PointerEventData eventData)
        {
            dragging = false;


            if (hoverOverObject == null && oldHoverOverObject != null)
            {
                hoverOverObject = oldHoverOverObject;
            }
            if (hoverOverObject == null)
            {
                VerticalMin   = initialPosition.y;
                VerticalMax   = initialPosition.y;
                HorizontalMin = initialPosition.x;
                HorizontalMax = initialPosition.x;
                if (hoverOverObject && hoverOverObject.canOnlyHoldOne)
                {
                    hoverOverObject.isOccupied = true;
                }
            }
            else
            {
                VerticalMin   = hoverOverObject.y;
                VerticalMax   = hoverOverObject.y;
                HorizontalMin = hoverOverObject.x;
                HorizontalMax = hoverOverObject.x;
                if (hoverOverObject.canOnlyHoldOne)
                {
                    hoverOverObject.isOccupied = true;
                }
            }

            VerticalClamp   = true;
            HorizontalClamp = true;

            horizontalMagnet = 10f;
            verticalMagnet   = 10f;



            if (endTransitions != null)
            {
                endTransitions.Begin();
            }

            if (onEnd != null)
            {
                onEnd.Invoke();
            }
        }