Exemplo n.º 1
0
    private void SetCurrentCardDrop(CardDropWidgetBase cardDrop, int index)
    {
        if (currentCardDrop != cardDrop || currentCardDropIndex != index)
        {
            var prevCardDrop = currentCardDrop;
            var prevIndex    = currentCardDropIndex;

            currentCardDrop      = cardDrop;
            currentCardDropIndex = index;

            CardWidget prevCard;
            if (currentCardDrop)
            {
                prevCard = cardDrop.CardDropSet(index, this);
            }
            else
            {
                prevCard = null;
            }

            if (prevCardDrop)
            {
                if (prevCard)
                {
                    prevCard.MoveDragAnchorToOrigin();

                    prevCard.currentCardDrop      = prevCardDrop;
                    prevCard.currentCardDropIndex = prevIndex;
                }

                prevCardDrop.CardDropSet(prevIndex, prevCard);
            }
            else if (prevCard)
            {
                prevCard.poolData.Release();
            }
        }
    }
Exemplo n.º 2
0
    private void ResetDrag(bool resetDragRoot)
    {
        StopRoutine();

        mIsDragging        = false;
        mDragAreaBeginType = DragAreaType.None;
        mDragAreaCurType   = DragAreaType.None;

        if (resetDragRoot && dragRoot)
        {
            dragRoot.SetParent(transform, false);
            dragRoot.localPosition = mDragRootDefaultLocalPos;
        }

        if (dragInsideWholeGO)
        {
            dragInsideWholeGO.SetActive(false);
        }
        if (dragInsideFractionGO)
        {
            dragInsideFractionGO.SetActive(false);
        }
        if (dragWholeToFractionGO)
        {
            dragWholeToFractionGO.SetActive(false);
        }
        if (dragFractionToWholeGO)
        {
            dragFractionToWholeGO.SetActive(false);
        }

        if (mCurCardDropWidget)
        {
            mCurCardDropWidget.CardDropHighlightClear();
            mCurCardDropWidget = null;
        }
    }
Exemplo n.º 3
0
    private void RefreshDragDisplay(PointerEventData eventData)
    {
        Vector2 pos = eventData.position;

        var _dragInside          = false;
        var _dragWholeToFraction = false;
        var _dragFractionToWhole = false;

        switch (mDragAreaCurType)
        {
        case DragAreaType.Whole:
            _dragInside          = true;
            _dragFractionToWhole = mDragAreaBeginType == DragAreaType.Fraction;
            break;

        case DragAreaType.Fraction:
            _dragInside          = true;
            _dragWholeToFraction = mDragAreaBeginType == DragAreaType.Whole;
            break;

        case DragAreaType.Outside:
            //set drag display position
            var dragAreaRoot = DragArea.transform;
            if (dragRoot.parent != dragAreaRoot)
            {
                dragRoot.SetParent(dragAreaRoot, false);
            }

            dragRoot.position = pos;

            CardDropWidgetBase dropWidget = null;
            int index = -1;

            if (eventData.pointerCurrentRaycast.isValid && eventData.pointerCurrentRaycast.gameObject)
            {
                dropWidget = eventData.pointerCurrentRaycast.gameObject.GetComponent <CardDropWidgetBase>();
                if (dropWidget)
                {
                    index = dropWidget.CardDropGetSlotIndex(this);
                }
            }

            if (mCurCardDropWidget != dropWidget)
            {
                if (mCurCardDropWidget)
                {
                    mCurCardDropWidget.CardDropHighlightClear();
                }

                mCurCardDropWidget = dropWidget;
            }

            if (mCurCardDropWidget)
            {
                mCurCardDropWidget.CardDropHighlight(index);
            }
            break;
        }

        //revert drag root if no longer "outside"
        if (mDragAreaCurType != DragAreaType.Outside)
        {
            if (dragRoot.parent != transform)
            {
                dragRoot.SetParent(transform, false);
                dragRoot.localPosition = mDragRootDefaultLocalPos;
            }
        }

        if (_dragInside)
        {
            if (dragInsideWholeGO)
            {
                dragInsideWholeGO.SetActive(mDragAreaBeginType == DragAreaType.Whole);
            }
            if (dragInsideFractionGO)
            {
                dragInsideFractionGO.SetActive(mDragAreaBeginType == DragAreaType.Fraction);
            }
        }
        else
        {
            if (dragInsideWholeGO)
            {
                dragInsideWholeGO.SetActive(false);
            }
            if (dragInsideFractionGO)
            {
                dragInsideFractionGO.SetActive(false);
            }
        }

        if (dragWholeToFractionGO)
        {
            dragWholeToFractionGO.SetActive(_dragWholeToFraction);
        }
        if (dragFractionToWholeGO)
        {
            dragFractionToWholeGO.SetActive(_dragFractionToWhole);
        }
    }