public void SetSelected() { if (animationSeq.Elapsed() < LineAppearAtTime) { animationSeq.Goto(LineAppearAtTime, true); } else if (animationSeq.Elapsed() > LineAppearAtTime + MaskWipeTime) { animationSeq.Goto(LineAppearAtTime + MaskWipeTime); if (!animationSeq.IsPlaying()) { animationSeq.Play(); } } SpinnerSpriteRenderer.transform.DOScale(SpinnerSelectedScale, SpinnerSelectedEaseTime) .SetEase(SpinnerSelectedEase); SpinnerSpriteRenderer.DOColor(SpinnerSelectedColor, SpinnerSelectedEaseTime).SetEase(SpinnerSelectedEase); LineSpriteRenderer.transform.DOScale(LineSelectedScale, LineSelectedEaseTime) .SetEase(SpinnerSelectedEase); LineSpriteRenderer.DOColor(LineSelectedColor, LineSelectedEaseTime).SetEase(LineSelectedEase); SpinnerSpriteRenderer.sortingOrder = 1; LineSpriteRenderer.sortingOrder = 1; }
public void UnsetSelected() { SpinnerSpriteRenderer.transform.DOScale(spinnerOriginalScale, SpinnerSelectedEaseTime) .SetEase(SpinnerSelectedEase); SpinnerSpriteRenderer.DOColor(spinnerOriginalColor, SpinnerSelectedEaseTime).SetEase(SpinnerSelectedEase); LineSpriteRenderer.transform.DOScale(lineOriginalScale, LineSelectedEaseTime) .SetEase(SpinnerSelectedEase); LineSpriteRenderer.DOColor(lineOriginalColor, LineSelectedEaseTime).SetEase(LineSelectedEase); SpinnerSpriteRenderer.sortingOrder = 0; LineSpriteRenderer.sortingOrder = 0; }
private Sequence RunAnimation() { AlignWithCutVector(); // Spawning instantly now. OnSpawnCompleteTick(); var seq = DOTween.Sequence(); var spinnerseq = DOTween.Sequence(); spinnerseq.Append(SpinnerSpriteRenderer.transform.DOLocalRotate(Vector3.forward * 360, RotationSpeed, RotateMode.LocalAxisAdd) .SetEase(EasePerLoop ? RotationEase : Ease.Linear).SetLoops(NumberOfSpins)); spinnerseq.SetEase(EasePerLoop ? Ease.Linear : RotationEase); seq.Append(spinnerseq); // TODO: make this use parameters. seq.Insert(0, SpinnerSpriteRenderer.transform.DOScale(1, .5f).SetEase(Ease.OutBack)); // A bit messy, but seems necessary for this kind of approach. Tween drawLine = DOTween.To(() => LineSpriteMask.alphaCutoff, x => LineSpriteMask.alphaCutoff = x, 0, MaskWipeTime) .SetEase(MaskWipeEase).OnComplete(() => { LineSpriteMask.enabled = false; LineSpriteRenderer.maskInteraction = SpriteMaskInteraction.None; }); seq.Insert(LineAppearAtTime, drawLine); seq.Insert(CutTimeout, SpinnerSpriteRenderer.DOFade(0, FadeDuration)); seq.Insert(CutTimeout, LineSpriteRenderer.DOFade(0, FadeDuration)); seq.InsertCallback(CutTimeout + FadeDuration, OnTimeoutTick); seq.SetEase(EasePerLoop ? Ease.Linear : RotationEase); seq.Play(); return(seq); // TODO: change color as the circle "warms up"? }