Beispiel #1
0
 void IDragHandler.OnDrag(PointerEventData eventData)
 {
     if (_pointerId == eventData.pointerId)
     {
         OnDragged?.Invoke(eventData.delta);
     }
 }
Beispiel #2
0
 private void OnMouseDrag()
 {
     if (!ball)
     {
         return;
     }
     ApplyForce(ball);
     OnDragged?.Invoke(this);
 }
Beispiel #3
0
    void IDragHandler.OnDrag(PointerEventData eventData)
    {
        var     r  = GetComponent <RectTransform>();
        var     r2 = r.rect.size;
        Vector2 x;

        RectTransformUtility.ScreenPointToLocalPointInRectangle(r, eventData.position, null, out x);
        x   += new Vector2(r2.x, -r2.y) / 2;
        posn = Util.CanvasToPixel(x);
        OnDragged?.Invoke(posn);
    }
Beispiel #4
0
 public void OnDrag(PointerEventData ped)
 {
     OnDragged?.Invoke(ped);
 }
 public void OnDrag(PointerEventData eventData)
 {
     OnDragged?.Invoke(eventData.position);
 }
Beispiel #6
0
    public void OnEndDrag(PointerEventData eventData)
    {
        if (onEndDragEvent != null)
        {
            onEndDragEvent.Invoke(eventData);
        }
        if (!arrangeable)
        {
            return;
        }
        var position = eventData.position;

        isDrag            = false;
        isEndDrag         = true;
        dragJourneyLength = 0f;

        startEndDragTime     = Time.time;
        endDragJourneyLength = Vector3.Distance(Vector3.one * 1.5f, Vector3.one);

        if (useIcon)
        {
            if (draggableIcon != null)
            {
                lastDraggableIconPosition = draggableIcon.transform.position;
                DragDropHandler matchItem     = null;
                var             isAlternative = false;
                var             matchIndex    = 0;
                var             index         = 0;
                foreach (var item in items)
                {
                    if (RectTransformUtility.RectangleContainsScreenPoint(item.GetComponent <RectTransform>(), position))
                    {
                        if (item != this)
                        {
                            if (item.icon.enabled)
                            {
                                var itemIconSprite = item.icon.sprite;
                                item.icon.sprite = icon.sprite;

                                icon.sprite   = itemIconSprite;
                                icon.enabled  = true;
                                isAlternative = true;
                            }
                            else
                            {
                                item.icon.sprite = icon.sprite;
                                icon.enabled     = false;
                            }
                            item.icon.enabled = true;
                            matchItem         = item;
                            matchIndex        = index;
                        }
                    }
                    ++index;
                    item.transform.localScale         = Vector3.one;
                    item.GetComponent <Image>().color = originalColor;
                }
                if (matchItem != null)
                {
                    Destroy(draggableIcon.gameObject);
                    StartCoroutine(OnSlotMatch(matchItem, icon));
                    if (matchItem.onDragged != null)
                    {
                        matchItem.onDragged.Invoke(this.gameObject, matchIndex, isAlternative);
                    }
                }
                else
                {
                    StartCoroutine(OnSlotMiss());
                }
            }
        }
        else
        {
            if (draggableObject != null)
            {
                lastDraggableObjectPosition = draggableObject.transform.position;
                if (orginalSiblingIndex != transform.GetSiblingIndex())
                {
                    Destroy(draggableObject.gameObject);
                    StartCoroutine(OnSlotMatch(this, null));
                    if (onDragged != null)
                    {
                        onDragged.Invoke(gameObject, orginalSiblingIndex, false);
                    }
                }
                else
                {
                    StartCoroutine(OnSlotMiss());
                }
            }
        }
    }
Beispiel #7
0
 public void OnDrag(PointerEventData eventData)
 {
     SetPosition(eventData.position);
     OnDragged?.Invoke(_id);
 }