Пример #1
0
    //0=bottom anchor, 0.5=when anchored center, 1=top. Returns where it should be when transitioning from top

    private Vector2 GetPositionByAnchorForToporBottom(CallablePanel panel, RectTransform panelRectTransform, TransitionSide topOrBottom)
    {
        Vector2 positionToGoTo;


        if (panelRectTransform.anchorMax.y == 0)
        {
            positionToGoTo = new Vector2(panel.originalPos.x, canvasHeight + (panelRectTransform.sizeDelta.y / 2));
        }
        else if (panelRectTransform.anchorMax.y == 0.5)
        {
            positionToGoTo = new Vector2(panel.originalPos.x, (canvasHeight / 2) + panelRectTransform.sizeDelta.y / 2);
        }
        else
        {
            //else if    ... == 1f :
            positionToGoTo = new Vector2(panel.originalPos.x, panelRectTransform.sizeDelta.y);
        }

        switch (topOrBottom)
        {
        case TransitionSide.top:
            return(positionToGoTo);

        case TransitionSide.bottom:
            return(new Vector2(positionToGoTo.x, positionToGoTo.y * -1));  //just to turn it other way round

        default:
            return(positionToGoTo);
        }
    }
Пример #2
0
    //based on the anchors : left | center | right
    //0=left anchor, 0.5=when anchored center, 1=right. Returns where it should be when transitioning from left
    private Vector2 GetPositionByAnchorForLeftorRight(CallablePanel panel, RectTransform panelRectTransform, TransitionSide leftOrRight)
    {
        Vector2 positionToGoTo;

        if (panelRectTransform.anchorMax.x == 0)
        {
            positionToGoTo = new Vector2(-panelRectTransform.sizeDelta.x, panel.originalPos.y);
        }
        else if (panelRectTransform.anchorMax.x == 0.5)
        {
            positionToGoTo = new Vector2((-panelRectTransform.sizeDelta.x - canvasWidth) / 2f, panel.originalPos.y);
        }
        else
        {
            //else if    ... == 1f :
            positionToGoTo = new Vector2(-panelRectTransform.sizeDelta.x - canvasWidth / 2f - panelRectTransform.sizeDelta.x / 2f, panel.originalPos.y);
        }

        switch (leftOrRight)
        {
        case TransitionSide.left:
            return(positionToGoTo);

        case TransitionSide.right:
            return(new Vector2(positionToGoTo.x * -1, positionToGoTo.y));  //just to turn it other way round

        default:
            return(positionToGoTo);
        }
    }