setOnStart() public méthode

public setOnStart ( Action onStart ) : LTDescr
onStart Action
Résultat LTDescr
Exemple #1
0
 // To make cumulative move actions work, the To value needs to adjusted
 // when the animation starts. Leantween already uses same approach to fetch the From value.
 private void SetupMoveTo(LTDescr descr, Vector2 amount)
 {
     descr.setOnStart(() =>
     {
         descr.to = descr.rectTransform.anchoredPosition3D + new Vector3(amount.x, amount.y, 0f);
     });
 }
    void MoveDown()
    {
        LTDescr moveDownTween = LeanTween.moveY(this.gameObject,
                                                originalPosition.y,
                                                0.5f);

        moveDownTween.setOnStart(MoveToOriginalPosStarted);

        moveState = MoveState.Original;
    }
    void MoveUp()
    {
        Image messageBoxImage;

        FindMessageBoxImage(out messageBoxImage);

        LTDescr moveUpTween = LeanTween.moveY(this.gameObject,
                                              messageBoxImage.rectTransform.position.y - (messageBoxImage.rectTransform.sizeDelta.y * 2.0f),
                                              0.5f);

        moveUpTween.setOnStart(MoveToTopStarted);
        moveUpTween.setOnComplete(MoveToTopCompleted);

        moveState = MoveState.Top;
    }
        public void HandleTween()
        {
            if (objectToAnimate == null)
            {
                objectToAnimate = gameObject;
            }

            switch (animationType)
            {
            case UIAnimationTypes.Fade:
                Fade();
                break;

            case UIAnimationTypes.Move:
                MoveAbsolute();
                break;

            case UIAnimationTypes.Scale:
                Scale();
                break;

            case UIAnimationTypes.ScaleX:
                from = new Vector3(from.x, transform.localScale.y, transform.localScale.z);
                to   = new Vector3(to.x, transform.localScale.y, transform.localScale.z);
                Scale();
                break;

            case UIAnimationTypes.ScaleY:
                from = new Vector3(transform.localScale.x, from.y, transform.localScale.z);
                to   = new Vector3(transform.localScale.x, to.y, transform.localScale.z);
                Scale();
                break;
            }

            _tweenObject.setDelay(delay);

            if ((delay >= 0f) && hideDuringDelay)
            {
                CanvasGroup group = objectToAnimate.GetComponent <CanvasGroup>();
                if (group == null)
                {
                    group = objectToAnimate.AddComponent <CanvasGroup>();
                }

                group.alpha = 0;
                //Show the object when it starts
                _tweenObject.setOnStart(() =>
                {
                    group.alpha = 1;
                });
            }

            _tweenObject.setEase(easeType);

            if (loop)
            {
                _tweenObject.loopCount = int.MaxValue;
            }
            if (pingpong)
            {
                _tweenObject.setLoopPingPong();
            }
        }
    public void Apply_Effect(int index)
    {
        TweenConfig config = tweenConfigs[index];
        LTDescr     tweenDescr = null;
        Vector3     v3a, v3b;

        switch (config.type)
        {
        case TweenType.None:
            break;

        case TweenType.Move:

            switch (config.para)
            {
            case TweenPara.None:
                break;

            case TweenPara.Zero_To_One:
                break;

            case TweenPara.One_To_Zero:
                break;

            case TweenPara.FloatA_To_FloatB:
                break;

            case TweenPara.VectA_To_VectB:
                if (!config.use_curVal_as_A)
                {
                    transform.position = config.vec_A;
                }
                tweenDescr = LeanTween.move(gameObject, config.vec_B, config.duration);
                break;

            case TweenPara.ColA_To_ColB:
                break;

            case TweenPara.ViewA_To_ViewB:
                if (!config.use_curVal_as_A)
                {
                    v3a   = Cam.ViewportToWorldPoint(config.vPrt_A);
                    v3a.z = transform.position.z;
                    transform.position = v3a;
                }
                v3b   = Cam.ViewportToWorldPoint(config.vPrt_B);
                v3b.z = transform.position.z;

                tweenDescr = LeanTween.move(gameObject, v3b, config.duration).setEase(config.curve);
                break;

            default:
                break;
            }

            break;

        case TweenType.MoveUI:
            RectTransform rt = GetComponent <RectTransform>();
            switch (config.para)
            {
            case TweenPara.None:
                break;

            case TweenPara.Zero_To_One:
                break;

            case TweenPara.One_To_Zero:
                break;

            case TweenPara.FloatA_To_FloatB:
                break;

            case TweenPara.VectA_To_VectB:
                if (!config.use_curVal_as_A)
                {
                    transform.position = config.vec_A;
                }
                tweenDescr = LeanTween.move(gameObject, config.vec_B, config.duration);
                break;

            case TweenPara.ColA_To_ColB:
                break;

            case TweenPara.ViewA_To_ViewB:
                CanvasScaler  cs  = GetComponentInParent <CanvasScaler>();
                RectTransform crt = cs.GetComponent <RectTransform>();
                if (!config.use_curVal_as_A)
                {
                    v3a.x = crt.rect.width * config.vPrt_A.x * crt.localScale.x;
                    v3a.y = crt.rect.height * config.vPrt_A.y * crt.localScale.y;
                    v3a.z = transform.position.z;
                    transform.position = v3a;
                }

                v3b.x      = crt.rect.width * config.vPrt_B.x * crt.localScale.x;
                v3b.y      = crt.rect.height * config.vPrt_B.y * crt.localScale.y;
                v3b.z      = transform.position.z;
                tweenDescr = LeanTween.move(gameObject, v3b, config.duration).setEase(config.curve);
                break;

            default:
                break;
            }

            break;

        case TweenType.Rotate:
            break;

        case TweenType.Scale:
            break;

        case TweenType.ColorMat:
            break;

        case TweenType.ColorVtx:
            break;

        default:
            break;
        }

        if (tweenDescr != null)
        {
            tweenDescr.setOnStart(() => { config.onStart.Invoke(); });
            tweenDescr.setOnComplete(() => { config.onComplete.Invoke(); });
        }
    }
Exemple #6
0
        private void HandleTween()
        {
            _tweenObject = null;
            switch (animationType)
            {
            case UIAnimationTypes.Fade:
                Fade();
                break;

            case UIAnimationTypes.Move:
                MoveAbsolute();
                break;

            case UIAnimationTypes.Scale:
                Scale();
                break;

            case UIAnimationTypes.ScaleX:
                from = new Vector3(from.x, transform.localScale.y, transform.localScale.z);
                to   = new Vector3(to.x, transform.localScale.y, transform.localScale.z);
                Scale();
                break;

            case UIAnimationTypes.ScaleY:
                from = new Vector3(transform.localScale.x, from.y, transform.localScale.z);
                to   = new Vector3(transform.localScale.x, to.y, transform.localScale.z);
                Scale();
                break;

            case UIAnimationTypes.Rect:
                Rect();
                break;
            }

            var delayResult = delay;

            if (multiplyDelayByChildIndex)
            {
                delayResult = delay * transform.GetSiblingIndex();
            }

            _tweenObject.setDelay(delayResult);

            if ((delayResult >= 0f) && hideDuringDelay)
            {
                CanvasGroup group = objectToAnimate.GetComponent <CanvasGroup>();
                if (group == null)
                {
                    group = objectToAnimate.AddComponent <CanvasGroup>();
                }

                group.alpha = 0;
                //Show the object when it starts
                _tweenObject.setOnStart(() =>
                {
                    group.alpha = 1;
                });
            }

            _tweenObject.setEase(easeType);

            if (loop)
            {
                _tweenObject.loopCount = int.MaxValue;
            }
            if (pingpong)
            {
                _tweenObject.setLoopPingPong();
            }
            if (onComplete != null)
            {
                _tweenObject.setOnComplete(onComplete);
            }
        }