Exemplo n.º 1
0
    public void OnPointerUp(PointerEventData eventData)
    {
        _isDown = false;
        DragAndDropContainer container      = null;
        List <RaycastResult> raycastResults = new List <RaycastResult>();

        EventSystem.current.RaycastAll(eventData, raycastResults);
        if (raycastResults.Count > 0)
        {
            for (int i = 0; i < raycastResults.Count; i++)
            {
                container = raycastResults[i].gameObject.GetComponent <DragAndDropContainer>();
                if (container != null)
                {
                    break;
                }
            }
        }

        if (container == null || container.transform == transform.parent)
        {
            transform.SetParent(ParentContainer.ItemRoot);
            iTween.MoveTo(gameObject, transform.parent.position, TimeMove);
        }
        else
        {
            List <DragAndDropItem> itemList = null;

            if (container.IsFull(out itemList))
            {
                if (container.SwapItemWhenFull)
                {
                    DragAndDropItem otherItem = null;

                    if (itemList.Count > 0)
                    {
                        otherItem = itemList[itemList.Count - 1];
                    }

                    if (otherItem != null)
                    {
                        otherItem.ChangeContainer(ParentContainer);
                    }

                    ChangeContainer(container);
                }
                else
                {
                    transform.SetParent(ParentContainer.ItemRoot);
                    iTween.MoveTo(gameObject, ParentContainer.ItemRoot.position, TimeMove);
                }
            }
            else
            {
                ChangeContainer(container);
            }
        }
    }
Exemplo n.º 2
0
 private void ChangeContainer(DragAndDropContainer container)
 {
     ParentContainer = container;
     if (ParentContainer != null)
     {
         transform.SetParent(ParentContainer.ItemRoot);
         iTween.MoveTo(gameObject, ParentContainer.ItemRoot.position, TimeMove);
     }
 }
Exemplo n.º 3
0
    public void Init(Canvas canvas, DragAndDropContainer container)
    {
        if (canvas != null)
        {
            MyCanvas = canvas;
        }

        if (MyCanvas == null)
        {
            MyCanvas = FindObjectOfType <Canvas>();
        }

        ParentContainer = container;

        if (ParentContainer != null)
        {
            transform.SetParent(ParentContainer.ItemRoot);
            transform.position = ParentContainer.ItemRoot.position;
        }
    }