Beispiel #1
0
    //移动
    public static void Move(RectTransform target, MoverParams moverParams, Action onComplete = null)
    {
        //改变Size
        if (!moverParams.changeScale)
        {
        }
        //改变Scale
        else
        {
            //如果没有设置
            if (moverParams.startRect == default(Rect))
            {
                moverParams.startRect = new Rect {
                    position = target.position,
                    size     = target.rect.size * target.localScale
                };
            }
            if (moverParams.endRect == default(Rect))
            {
                moverParams.endRect = new Rect {
                    position = target.position,
                    size     = target.rect.size
                };
            }

            //Scale
            Vector2 fromScale = moverParams.startRect.size / GetRealSize(target);
            target.localScale = fromScale;
            Vector2 toScale = moverParams.endRect.size / GetRealSize(target);
            target.DOScale(toScale, moverParams.movement.duration).SetEase(moverParams.movement.curve);

            //Pos
            target.position = moverParams.startRect.position;
            target.DOMove(moverParams.endRect.position, moverParams.movement.duration).SetEase(moverParams.movement.curve).OnComplete(() => {
                onComplete?.Invoke();
            });
        }
    }
Beispiel #2
0
    public void Move(bool show)
    {
        MoverParams moverParams;

        if (show)
        {
            moverParams = new MoverParams {
                startRect   = startRect,
                endRect     = endRect,
                changeScale = true
            };
        }
        else
        {
            moverParams = new MoverParams {
                startRect   = endRect,
                endRect     = startRect,
                changeScale = true
            };
        }

        //print($"Start: {moverParams.startRect.position}, {moverParams.startRect.size}. End: {moverParams.endRect.position}, {moverParams.endRect.size}");
        UIMover.Move(layoutParent, moverParams);
    }