Exemple #1
0
    private void TransitionMainText(SceneTransitionRequest str, Image anchorTarget)
    {
        var animGroup   = new AnimGroup();
        var textFadeOut = new FadeAnimation(PhraseText, Time.time, FadeOutDuration, FadeOutCurve, 0.0f);

        animGroup.AddAnimation(textFadeOut);

        var lastAnimFinish = textFadeOut.TimeEnd;

        var defaultTextBoxSize = new Vector2(anchorTarget.rectTransform.rect.width - 30,
                                             anchorTarget.rectTransform.rect.height - 35);

        var requiredHeight = GetDesiredTextHeight(PhraseText, str.TransitionPhrase, defaultTextBoxSize);

        if (PhraseBackground.rectTransform.anchoredPosition != anchorTarget.rectTransform.anchoredPosition ||
            !Mathf.Approximately(requiredHeight, PhraseText.rectTransform.rect.height))
        {
            var textBoxResize = new RectAnimation(PhraseBackground.rectTransform, textFadeOut.TimeEnd, TransitionDuration, TransitionCurve, anchorTarget.rectTransform);
            // Fixup for correct size
            textBoxResize.TargetSize.y = requiredHeight + 35;
            animGroup.AddAnimation(textBoxResize);
            lastAnimFinish = textBoxResize.TimeEnd;
        }

        var textChange = new SetTextAnimation(PhraseText, lastAnimFinish, str.TransitionPhrase);

        animGroup.AddAnimation(textChange);
        var textFadeIn = new FadeAnimation(PhraseText, lastAnimFinish, FadeInDuration, FadeInCurve, 1.0f);

        animGroup.AddAnimation(textFadeIn);
        _pendingAnimations.Enqueue(animGroup);
    }
Exemple #2
0
 public AnimGroup AddAnimation(SetTextAnimation sta)
 {
     TimeStart = Mathf.Min(TimeStart, sta.TimeSet);
     TimeEnd   = Mathf.Max(TimeEnd, sta.TimeSet);
     SetTextAnimations.Add(sta);
     return(this);
 }