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)); }
/// <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); }); } }
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); }
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)); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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(); }
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); }