Пример #1
0
 private void Update()
 {
     if (!onTarget)
     {
         Vector2 direction   = targetPosition - rectTransform.anchoredPosition;
         Vector2 newPosition = rectTransform.anchoredPosition + direction.normalized * Time.deltaTime * Mathf.Min(maxSpeed, requiredSpeed);
         if (Vector2.Distance(rectTransform.anchoredPosition, newPosition) < Vector2.Distance(rectTransform.anchoredPosition, targetPosition))
         {
             Vector2 diff = rectTransform.anchoredPosition - newPosition;
             for (int i = 0; i < transform.childCount; i++)
             {
                 DraggableUIItem draggable = transform.GetChild(i).GetComponent <DraggableUIItem>();
                 if (draggable != null)
                 {
                     if (draggable.isDragged)
                     {
                         draggable.GetComponent <RectTransform>().anchoredPosition += diff;
                     }
                 }
             }
             rectTransform.anchoredPosition = newPosition;
         }
         else
         {
             Vector2 diff = rectTransform.anchoredPosition - targetPosition;
             for (int i = 0; i < transform.childCount; i++)
             {
                 DraggableUIItem draggable = transform.GetChild(i).GetComponent <DraggableUIItem>();
                 if (draggable != null)
                 {
                     if (draggable.isDragged)
                     {
                         draggable.GetComponent <RectTransform>().anchoredPosition += diff;
                     }
                 }
             }
             rectTransform.anchoredPosition = targetPosition;
             onTarget = true;
         }
     }
 }
Пример #2
0
 public void AddConnectedItem(DraggableUIItem item)
 {
     connectedItems.Add(item);
 }
Пример #3
0
    private void Start()
    {
        DraggableUIItem draggableUIItem = GetComponent <DraggableUIItem>();

        draggableUIItem.onBeginDrag.AddListener(CreateDragCopy);
    }