コード例 #1
0
    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;
    }
コード例 #2
0
    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;
    }
コード例 #3
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"?
    }