Esempio n. 1
1
 public void StartEffect(string text, float duration)
 {
     _renderState = RenderState.Rendering;
     _sequense = null;
     _sequense = DOTween.Sequence();
     _animation = _textUI.DOText(text, duration);
     _sequense.Append(_animation);
     _sequense.AppendCallback(new TweenCallback(FinishDisplay));
 }
Esempio n. 2
0
    /// <summary>
    /// 게임 리스트 클릭했다.
    /// </summary>
    public void click_OnClick()
    {
        if (IsGameDownloading)
        {
            return;
        }

        if (_state == eState.Download)
        {
            // 메뉴 활동 초기화 .. 로딩 완료시 참조가 0 이면 바로 게임 으로 넘어간다.
            if (DEF.GameDownloadingCount < 4)  //3개만
            {
                DEF.GameDownloadingCount++;
                LoadGameBundle();
            }
        }
        else if (_state == eState.Play && DEF.GameDownloadingCount == 0)
        {
            UI.SetWaitLoading(true);
            DG.Tweening.Sequence mySeq = DOTween.Sequence();
            mySeq.Append(this.gameObject.GetComponent <Transform>().DOScale(0.8f, 0.05f).SetEase(Ease.OutSine));
            mySeq.Append(this.gameObject.GetComponent <Transform>().DOScale(1f, 0.05f).SetEase(Ease.OutSine));
            mySeq.Play().OnComplete(() => {
                SCENE.I.AddMessage(SCENEIDs.LobbyToGame, "game", _Info.game_id);
            });
        }
    }
Esempio n. 3
0
    void PlusAnim(int delta)
    {
        plusText.text = "+" + delta;

        plusText.gameObject.SetActive(true);
        plusText.color = plusText.color.Ato(0);
        //transformの拡張メソッド生やせるなこれ
        plusText.transform.localPosition = plusText.transform.localPosition.Yto(plusTextDefY - 50);

        DG.Tweening.Sequence seq = DOTween.Sequence();
        seq.Append(
            plusText.transform.DOLocalMoveY(50, 1f)
            .SetRelative()
            .SetEase(Ease.OutQuint)
            );
        seq.Join(
            plusText.DOFade(1, 0.5f)
            );
        seq.AppendInterval(
            0.3f
            );
        seq.Append(
            plusText.DOFade(0, 0.3f)
            );
        seq.onComplete += () => plusText.gameObject.SetActive(false);
    }
Esempio n. 4
0
 static int Append(IntPtr L)
 {
     LuaScriptMgr.CheckArgsCount(L, 2);
     DG.Tweening.Sequence obj  = (DG.Tweening.Sequence)LuaScriptMgr.GetNetObjectSelf(L, 1, "DG.Tweening.Sequence");
     DG.Tweening.Tween    arg0 = (DG.Tweening.Tween)LuaScriptMgr.GetNetObject(L, 2, typeof(DG.Tweening.Tween));
     DG.Tweening.Sequence o    = obj.Append(arg0);
     LuaScriptMgr.PushObject(L, o);
     return(1);
 }
 static int QPYX_Append_YXQP(IntPtr L_YXQP)
 {
     try
     {
         ToLua.CheckArgsCount(L_YXQP, 2);
         DG.Tweening.Sequence QPYX_obj_YXQP  = (DG.Tweening.Sequence)ToLua.CheckObject(L_YXQP, 1, typeof(DG.Tweening.Sequence));
         DG.Tweening.Tween    QPYX_arg0_YXQP = (DG.Tweening.Tween)ToLua.CheckObject <DG.Tweening.Tween>(L_YXQP, 2);
         DG.Tweening.Sequence QPYX_o_YXQP    = QPYX_obj_YXQP.Append(QPYX_arg0_YXQP);
         ToLua.PushSealed(L_YXQP, QPYX_o_YXQP);
         return(1);
     }
     catch (Exception e_YXQP)                {
         return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP));
     }
 }
        private void AnimateGuardian()
        {
            animatedGuardian.SetActive(true);
            guardianSequence = DOTween.Sequence();
            guardianSequence.Append(animatedGuardian.transform.DOMove(finalGuardian.position, guardianAnimationDuration).SetEase(guardianAnimationEase));

            for (int i = 0; i < extraGuardians.Length; i++)
            {
                guardianSequence.Insert(extraAnimationsStartSecond, extraGuardians[i].
                    DOMoveY(finalGuardian.position.y, guardianAnimationDuration - extraAnimationsStartSecond).
                    SetEase(extraGuardiansEase));
            }

            guardianSequence.AppendCallback(OnGuardianAnimationComplete);
        }
 static int Append(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         DG.Tweening.Sequence obj  = (DG.Tweening.Sequence)ToLua.CheckObject(L, 1, typeof(DG.Tweening.Sequence));
         DG.Tweening.Tween    arg0 = (DG.Tweening.Tween)ToLua.CheckObject <DG.Tweening.Tween>(L, 2);
         DG.Tweening.Sequence o    = obj.Append(arg0);
         ToLua.PushSealed(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
        public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
        {
            if (numJumps < 1)
            {
                numJumps = 1;
            }
            float    startPosY  = target.position.y;
            float    offsetY    = -1f;
            bool     offsetYSet = false;
            Sequence s          = DOTween.Sequence();

            s.Append(DOTween.To(() => target.position, new DOSetter <Vector3>(target.MovePosition), new Vector3(endValue.x, 0f, 0f), duration).SetOptions(AxisConstraint.X, snapping).SetEase <Tweener>(Ease.Linear).OnUpdate <Tweener>(delegate {
                if (!offsetYSet)
                {
                    offsetYSet = true;
                    offsetY    = s.isRelative ? endValue.y : (endValue.y - startPosY);
                }
                Vector3 position = target.position;
                position.y      += DOVirtual.EasedValue(0f, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
                target.MovePosition(position);
            })).Join(DOTween.To(() => target.position, new DOSetter <Vector3>(target.MovePosition), new Vector3(0f, 0f, endValue.z), duration).SetOptions(AxisConstraint.Z, snapping).SetEase <Tweener>(Ease.Linear)).Join(DOTween.To(() => target.position, new DOSetter <Vector3>(target.MovePosition), new Vector3(0f, jumpPower, 0f), duration / ((float)(numJumps * 2))).SetOptions(AxisConstraint.Y, snapping).SetEase <Tweener>(Ease.OutQuad).SetLoops <Tweener>((numJumps * 2), LoopType.Yoyo).SetRelative <Tweener>()).SetTarget <Sequence>(target).SetEase <Sequence>(DOTween.defaultEaseType);
            return(s);
        }
        /// <summary>Tweens a SpriteRenderer's color using the given gradient
        /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
        /// Also stores the sprite as the tween's target so it can be used for filtered operations</summary>
        /// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
        public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
        {
            Sequence s = DOTween.Sequence();

            GradientColorKey[] colors = gradient.colorKeys;
            int len = colors.Length;

            for (int i = 0; i < len; ++i)
            {
                GradientColorKey c = colors[i];
                if (i == 0 && c.time <= 0)
                {
                    target.color = c.color;
                    continue;
                }
                float colorDuration = i == len - 1
                    ? duration - s.Duration(false) // Verifies that total duration is correct
                    : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
                s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
            }
            s.SetTarget(target);
            return(s);
        }
        static int _m_Append(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


            DG.Tweening.Sequence __cl_gen_to_be_invoked = (DG.Tweening.Sequence)translator.FastGetCSObj(L, 1);


            try {
                {
                    DG.Tweening.Tween t = (DG.Tweening.Tween)translator.GetObject(L, 2, typeof(DG.Tweening.Tween));

                    DG.Tweening.Sequence __cl_gen_ret = __cl_gen_to_be_invoked.Append(t);
                    translator.Push(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
Esempio n. 11
0
        /// <summary>Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
        /// Returns a Sequence instead of a Tweener.
        /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
        /// <para>IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position</para></summary>
        /// <param name="endValue">The end value to reach</param>
        /// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
        /// <param name="numJumps">Total number of jumps</param>
        /// <param name="duration">The duration of the tween</param>
        /// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
        public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
        {
            if (numJumps < 1)
            {
                numJumps = 1;
            }
            float    startPosY  = target.position.y;
            float    offsetY    = -1;
            bool     offsetYSet = false;
            Sequence s          = DOTween.Sequence();

#if COMPATIBLE
            s.Append(DOTween.To(() => target.position, x => target.position = x.value, new Vector3(endValue.x, 0, 0), duration)
#else
            s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration)
#endif
                     .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
                     .OnUpdate(() => {
                if (!offsetYSet)
                {
                    offsetYSet = true;
                    offsetY    = s.isRelative ? endValue.y : endValue.y - startPosY;
                }
                Vector2 pos     = target.position;
                pos.y          += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
                target.position = pos;
            })
#if COMPATIBLE
                     ).Join(DOTween.To(() => target.position, x => target.position = x.value, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
#else
                     ).Join(DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
#endif
                            .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad)
                            .SetLoops(numJumps * 2, LoopType.Yoyo).SetRelative()
                            ).SetTarget(target).SetEase(DOTween.defaultEaseType);
            return(s);
        }
Esempio n. 12
0
        /// <summary>Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
        /// Returns a Sequence instead of a Tweener.
        /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations</summary>
        /// <param name="endValue">The end value to reach</param>
        /// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
        /// <param name="numJumps">Total number of jumps</param>
        /// <param name="duration">The duration of the tween</param>
        /// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
        public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps,
                                      float duration, bool snapping = false)
        {
            if (numJumps < 1)
            {
                numJumps = 1;
            }
            float    startPosY  = 0;
            float    offsetY    = -1;
            bool     offsetYSet = false;
            Sequence s          = DOTween.Sequence();
            Tween    yTween     = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0),
                                             duration / (numJumps * 2))
                                  .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
                                  .SetLoops(numJumps * 2, LoopType.Yoyo)
                                  .OnStart(() => startPosY = target.position.y);

            s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
                     .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
                     ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
                            .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
                            ).Join(yTween)
            .SetTarget(target).SetEase(DOTween.defaultEaseType);
            yTween.OnUpdate(() =>
            {
                if (!offsetYSet)
                {
                    offsetYSet = true;
                    offsetY    = s.isRelative ? endValue.y : endValue.y - startPosY;
                }

                Vector3 pos = target.position;
                pos.y      += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
                target.MovePosition(pos);
            });
            return(s);
        }
Esempio n. 13
0
        /// <summary>
        /// [BUTTON]这个动画放在UI上可以根据改Pivot来改变振动效果 (即改变旋转位置) 建议-1
        /// </summary>
        /// <param name="_RT"></param>
        /// <param name="_Loops"></param>
        /// <param name="_Strength"></param>
        /// <returns></returns>
        public static Sequence Ani_LoopJump_Shake(this RectTransform _RT, int _Loops = -1, float _Strength = 1)
        {
            float _BasePositionY = _RT.localPosition.y;
            float _Hight         = Screen.height * 0.03F + _BasePositionY;
            float _Width         = Screen.width * 0.1F;

            int _Angle = 8;

            Sequence sequence = DOTween.Sequence();

            sequence.

            //step1 risea
            Append(_RT.DOLocalMoveY(_Hight, 0.1F).SetEase(Ease.Linear))
            .Join(_RT.DOLocalRotate(Vector3.forward * -_Angle, 0.1F).SetEase(Ease.Linear))
            //step2 shakeansform.DOLocalRotate(Vector3.forward * _Angle, 0.1F).SetEase(Ease.Linear))

            .Append(_RT.DOLocalRotate(Vector3.forward * _Angle, 0.1F).SetEase(Ease.Linear))
            .Append(_RT.DOLocalRotate(Vector3.forward * -_Angle, 0.1F).SetEase(Ease.Linear))
            .Append(_RT.DOLocalRotate(Vector3.forward * _Angle, 0.1F).SetEase(Ease.Linear))
            .Append(_RT.DOLocalRotate(Vector3.forward * -_Angle, 0.1F).SetEase(Ease.Linear))
            .Append(_RT.DOLocalRotate(Vector3.forward * _Angle, 0.1F).SetEase(Ease.Linear))
            .Append(_RT.DOLocalRotate(Vector3.forward * -_Angle, 0.1F).SetEase(Ease.Linear))

            .Append(_RT.DOLocalRotate(Vector3.zero, 0.1F).SetEase(Ease.Linear))

            .Append(_RT.DOLocalMoveY(_BasePositionY, 0.2F).SetEase(Ease.Linear))
            .AppendInterval(0.7F)
            ;

            sequence.onComplete += () =>
            {
                _RT.localScale = Vector3.one;
            };
            sequence.SetLoops(_Loops);
            return(sequence);
        }
Esempio n. 14
0
        /// <summary>
        ///     Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis.
        ///     Returns a Sequence instead of a Tweener.
        ///     Also stores the RectTransform as the tween's target so it can be used for filtered operations
        /// </summary>
        /// <param name="endValue">The end value to reach</param>
        /// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
        /// <param name="numJumps">Total number of jumps</param>
        /// <param name="duration">The duration of the tween</param>
        /// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
        public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
        {
            if (numJumps < 1)
            {
                numJumps = 1;
            }

            float startPosY  = 0;
            float offsetY    = -1;
            bool  offsetYSet = false;

            // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence
            // (in case users add a delay or other elements to the Sequence)
            Sequence s      = DOTween.Sequence();
            Tween    yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
                              .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
                              .SetLoops(numJumps * 2, LoopType.Yoyo)
                              .OnStart(() => startPosY = target.anchoredPosition.y);

            s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration)
                     .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
                     ).Join(yTween)
            .SetTarget(target).SetEase(DOTween.defaultEaseType);
            s.OnUpdate(() =>
            {
                if (!offsetYSet)
                {
                    offsetYSet = true;
                    offsetY    = s.isRelative ? endValue.y : endValue.y - startPosY;
                }

                Vector2 pos             = target.anchoredPosition;
                pos.y                  += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
                target.anchoredPosition = pos;
            });
            return(s);
        }
Esempio n. 15
0
        public void Rotate(float deltaTime, float horizontalAxis, float verticalAxis)
        {
            bool isTurn = false;
            if( Mathf.Abs(verticalAxis) > 0.01f)
            {
                AddPitch(deltaTime, verticalAxis);
                RecomputeForward();
            }

            if( Mathf.Abs(horizontalAxis) > 0.8f)
            {
                isTurn = AddTurn(deltaTime, horizontalAxis);
            }

            if( isTurn )
            {
                speed = 0f;
                Vector3 backwards = Vector3.zero;
                if( this.transform.forward.z > 0f )
                {
                    backwards.z = -1f;
                }
                else
                {
                    backwards.z = 1f;
                }
                float duration = 0.25f;
                sequenceLock = new BasicTimer(duration, false);
                mySequence = DOTween.Sequence();
                mySequence.Append(transform.DOLookAt(thisTransform.position + backwards, duration, AxisConstraint.None));
            }
        }
        private void InitLevelsAlarms()
        {
            var shieldFrequency = 0.3f;
            shieldGaugeBackgroundImageOriginalColor = shieldGaugeBackgroundImage.color.Copy();
            shieldAlarmSequence = DOTween.Sequence();
            shieldAlarmSequence.Append(shieldGaugeBackgroundImage.DOColor(new Color(1f, 0, 0, 1f), shieldFrequency));
            shieldAlarmSequence.Append(shieldGaugeBackgroundImage.DOColor(shieldGaugeBackgroundImageOriginalColor, shieldFrequency));
            shieldAlarmSequence.SetLoops(-1);
            shieldAlarmSequence.Pause();

            var hullFrequency = 0.1f;
            hullGaugeBackgroundImageOriginalColor = hullGaugeBackgroundImage.color.Copy();
            hullAlarmSequence = DOTween.Sequence();
            hullAlarmSequence.Append(hullGaugeBackgroundImage.DOColor(new Color(1f, 0, 0, 1f), hullFrequency));
            hullAlarmSequence.Append(hullGaugeBackgroundImage.DOColor(hullGaugeBackgroundImageOriginalColor, hullFrequency));
            hullAlarmSequence.Insert(0, alarmLight.DOIntensity(alarmLightHighIntensity, hullFrequency));
            hullAlarmSequence.Insert(hullFrequency, alarmLight.DOIntensity(alarmLightLowIntensity, hullFrequency));
            hullAlarmSequence.SetLoops(-1);
            hullAlarmSequence.Pause();
        }
Esempio n. 17
0
        public override void OnExecute(FlowReactorComponent _flowReactor)
        {
            DG.Tweening.Sequence _seq = DG.Tweening.DOTween.Sequence();

            for (int s = 0; s < tweenSequence.Count; s++)
            {
                switch (tweenSequence[s].tweenObject)
                {
                case Sequence.TweenObject.floatValue:

                    switch (tweenSequence[s].tweenMethodVariables)
                    {
                    case Sequence.TweenMethodVariables.DOValue:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            var _float  = tweenSequence[s].floatValue.Value;
                            var _target = tweenSequence[s].targetFloat.Value;
                            var _index  = s;
                            _seq.Append(DG.Tweening.DOTween.To(x => _float = x, _float, _target, tweenSequence[s].duration)).OnUpdate(() => UpdateFloat(_index, _float));
                        }
                        else
                        {
                            var _float  = tweenSequence[s].floatValue.Value;
                            var _target = tweenSequence[s].targetFloat.Value;
                            var _index  = s;
                            _seq.Insert(tweenSequence[s].insertTime, DG.Tweening.DOTween.To(() => _float, x => _float = x, _target, tweenSequence[s].duration)).OnUpdate(() => UpdateFloat(_index, _float));
                        }
                        break;
                    }

                    break;

                case Sequence.TweenObject.intValue:

                    switch (tweenSequence[s].tweenMethodVariables)
                    {
                    case Sequence.TweenMethodVariables.DOValue:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            var _int    = tweenSequence[s].intValue.Value;
                            var _target = tweenSequence[s].targetInt.Value;
                            var _index  = s;
                            _seq.Append(DG.Tweening.DOTween.To(() => _int, x => _int = x, _target, tweenSequence[s].duration)).OnUpdate(() => UpdateInt(_index, _int));
                        }
                        else
                        {
                            var _int    = tweenSequence[s].intValue.Value;
                            var _target = tweenSequence[s].targetInt.Value;
                            var _index  = s;
                            _seq.Insert(tweenSequence[s].insertTime, DG.Tweening.DOTween.To(() => _int, x => _int = x, _target, tweenSequence[s].duration)).OnUpdate(() => UpdateInt(_index, _int));
                        }
                        break;
                    }

                    break;

                case Sequence.TweenObject.gameObject:

                    switch (tweenSequence[s].tweenMethodTransform)
                    {
                    case Sequence.TweenMethodTransform.DOLocalMove:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOLocalMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOLocalMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalMoveX:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOLocalMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOLocalMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalMoveY:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOLocalMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOLocalMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalMoveZ:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOLocalMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOLocalMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMove:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMoveX:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMoveY:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMoveZ:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScale:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOScale(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOScale(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScaleX:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOScaleX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOScaleX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScaleY:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOScaleY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOScaleY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScaleZ:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOScaleZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOScaleZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalRotate:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DOLocalRotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DOLocalRotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DORotate:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].gameObject.Value.transform.DORotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].gameObject.Value.transform.DORotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;
                    }

                    break;

                case Sequence.TweenObject.image:

                    switch (tweenSequence[s].tweenMethodImage)
                    {
                    case Sequence.TweenMethodImage.DOColor:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].image.Value.DOColor(tweenSequence[s].targetColor.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].image.Value.DOColor(tweenSequence[s].targetColor.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodImage.DOFill:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].image.Value.DOFillAmount(tweenSequence[s].targetFloat.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].image.Value.DOFillAmount(tweenSequence[s].targetFloat.Value, tweenSequence[s].duration));
                        }
                        break;
                    }

                    break;

                case Sequence.TweenObject.rectTransform:

                    switch (tweenSequence[s].tweenMethodTransform)
                    {
                    case Sequence.TweenMethodTransform.DOAnchoredPosition:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOAnchorPos(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOAnchorPos(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }

                        break;

                    case Sequence.TweenMethodTransform.DOLocalMove:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOLocalMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOLocalMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalMoveX:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOLocalMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOLocalMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalMoveY:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOLocalMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOLocalMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalMoveZ:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOLocalMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOLocalMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMove:

                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOMove(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }

                        break;

                    case Sequence.TweenMethodTransform.DOMoveX:

                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOMoveX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMoveY:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOMoveY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOMoveZ:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOMoveZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScale:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOScale(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOScale(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScaleX:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOScaleX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOScaleX(tweenSequence[s].target.Value.x, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScaleY:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOScaleY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOScaleY(tweenSequence[s].target.Value.y, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOScaleZ:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOScaleZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOScaleZ(tweenSequence[s].target.Value.z, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOLocalRotate:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOLocalRotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOLocalRotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DORotate:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DORotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DORotate(tweenSequence[s].target.Value, tweenSequence[s].duration));
                        }
                        break;

                    case Sequence.TweenMethodTransform.DOSizeDelta:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].rectTransform.Value.DOSizeDelta(tweenSequence[s].targetVector2.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].rectTransform.Value.DOSizeDelta(tweenSequence[s].targetVector2.Value, tweenSequence[s].duration));
                        }
                        break;
                    }

                    break;

                case Sequence.TweenObject.canvasGroup:

                    switch (tweenSequence[s].tweenMethodCanvas)
                    {
                    case Sequence.TweenMethodCanvas.DOFade:
                        if (tweenSequence[s].tweenState == Sequence.TweenState.append)
                        {
                            _seq.Append(tweenSequence[s].canvasGroup.Value.DOFade(tweenSequence[s].targetFloat.Value, tweenSequence[s].duration));
                        }
                        else
                        {
                            _seq.Insert(tweenSequence[s].insertTime, tweenSequence[s].canvasGroup.Value.DOFade(tweenSequence[s].targetFloat.Value, tweenSequence[s].duration));
                        }
                        break;
                    }

                    break;
                }

                _seq.SetEase(tweenSequence[s].easeType);
            }

            _seq.OnComplete(() => OnComplete());
            _seq.SetId(tweenID);
            _seq.Play();

            ExecuteNext(0, _flowReactor);
        }