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); }
public AnimGroup AddAnimation(SetTextAnimation sta) { TimeStart = Mathf.Min(TimeStart, sta.TimeSet); TimeEnd = Mathf.Max(TimeEnd, sta.TimeSet); SetTextAnimations.Add(sta); return(this); }