Esempio n. 1
0
    void Update()
    {
        if (_killCurrentTextAnimationOnNextUpdate)
        {
            //This has been moved here from DisplayInternal to allow for using Display methods from other threads.
            _killCurrentTextAnimationOnNextUpdate = false;
            if (LastTextAnimation != null)
            {
                LastTextAnimation.RemoveTweens();
                LastTextAnimation.Kill();
            }
        }

        subtitleTimer -= Time.unscaledDeltaTime;
        if (subtitleTimer < 0)
        {
            if (subtitlesQueue.Count > 0)
            {
                SetSubtitle(subtitlesQueue[0]);
                if (LoopSubtitles)
                {
                    subtitlesQueue.Add(subtitlesQueue[0]);
                }
                subtitlesQueue.RemoveAt(0);
                subtitleTimer = 1f;
            }
            else if (subtitleTimerOld >= 0.0f)
            {
                SetSubtitle("");
            }
        }
        subtitleTimerOld = subtitleTimer;

        float alpha;

        if (pulsating && LoopSubtitles)
        {
            alpha = 0.3f + (1.0f - Mathf.Abs(1.0f - 2.0f * subtitleTimer)) * 0.7f;
        }
        else if (pulsating)
        {
            alpha = 0.8f + (Mathf.Sin(Time.realtimeSinceStartup * 4.0f)) * 0.2f;
        }
        else
        {
            alpha = 1f;
        }

        if (LastTextAnimation == null && wordStack.Count > 0 && Time.unscaledDeltaTime < 0.1f && Active == true)
        {
            ShowNextTextAnimation();
        }

        Subtitle1.GetComponent <GUIText>().color = new Color(Subtitle1.GetComponent <GUIText>().color.r,
                                                             Subtitle1.GetComponent <GUIText>().color.g,
                                                             Subtitle1.GetComponent <GUIText>().color.b,
                                                             alpha * textFade);

        Subtitle2.GetComponent <GUIText>().color = new Color(Subtitle2.GetComponent <GUIText>().color.r,
                                                             Subtitle2.GetComponent <GUIText>().color.g,
                                                             Subtitle2.GetComponent <GUIText>().color.b,
                                                             textFade);

        if (Uptitle != null && Active)
        {
            float alpha2;
            if (uptitlePulsating)
            {
                alpha2 = 0.7f + Mathf.Sin(Time.realtimeSinceStartup * 10f) * 0.3f;
            }
            else
            {
                alpha2 = 0.7f;
            }

            if (uptitleFading)
            {
                uptitleAlpha -= Time.unscaledDeltaTime;
            }

            Uptitle.GetComponent <GUIText>().color = new Color(Uptitle.GetComponent <GUIText>().color.r,
                                                               Uptitle.GetComponent <GUIText>().color.g,
                                                               Uptitle.GetComponent <GUIText>().color.b,
                                                               alpha2 * textFade * (uptitleFading?uptitleAlpha:1));

            uptitleTimer -= Time.unscaledDeltaTime;
            if (uptitleTimer < 0)
            {
                if (UptitleQueue.Count > 0)
                {
                    SetUptitle(UptitleQueue[0]);
                    if (LoopUptitles)
                    {
                        UptitleQueue.Add(UptitleQueue[0]);
                    }
                    UptitleQueue.RemoveAt(0);
                    if (UptitleQueue.Count == 0)
                    {
                        AddUptitleToQueue("");
                    }
                    uptitleTimer = 1f;
                }
                //else {
                //    SetUptitle("");
                //}
            }
        }


        alphaTransitionProgress += Time.unscaledDeltaTime;
        alphaTransitionProgress  = 1f;
        //currentAlpha = Mathf.Lerp(srcAlpha, destAlpha, alphaTransitionProgress / alphaTransitionTime);

        foreach (var text in TextContainer.GetComponentsInChildren <GUIText>())
        {
            text.color = new Color(text.color.r, text.color.g, text.color.b, currentAlpha);
        }

        // HACK: was previously:
//		else
//			alpha = 0.9f;
//
//
//		Subtitle1.guiText.color = new Color(Subtitle1.guiText.color.r,
//		                                    Subtitle1.guiText.color.g,
//		                                    Subtitle1.guiText.color.b,
//		                                    alpha * textFade);
//
//		Subtitle2.guiText.color = new Color(Subtitle2.guiText.color.r,
//		                                    Subtitle2.guiText.color.g,
//		                                    Subtitle2.guiText.color.b,
//		                                    (1 - alpha) * textFade);
    }