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