Пример #1
0
    public void Render()
    {
        if(bIsActive)
        {
            curTime += Time.deltaTime;

            if(state == DynamicTextState.FIRST_STEP)
            {
                float a = (maxTime) / (middleX - minX);
                x = (curTime + a * minX) / a;

                if(curTime > maxTime)
                {
                    state = DynamicTextState.IDLE_STEP;
                }
            }
            else if(state == DynamicTextState.IDLE_STEP)
            {
                idleTime -= Time.deltaTime;
                if(idleTime <= 0)
                {
                    state = DynamicTextState.SECOND_STEP;
                    curTime = 0;
                }
            }
            else if(state == DynamicTextState.SECOND_STEP)
            {
                float a = (maxTime) / (maxX - minX);
                x = (curTime + a * middleX) / a;

                if(curTime > maxTime)
                {
                    state = DynamicTextState.NONE;
                    bIsActive = false;
                }
            }

            int lastFontSize = GUI.skin.label.fontSize;
            TextAnchor lastTextAnchor = GUI.skin.label.alignment;
            GUI.skin.label.alignment = TextAnchor.MiddleCenter;
            GUI.skin.label.fontSize = 22;
            GUI.skin.label.normal.textColor = Color.black;
            GUI.Label(new Rect(x + 1, y + 1, 560, 300), message);
            GUI.skin.label.normal.textColor = Color.white;
            GUI.Label(new Rect(x, y, 560, 300), message);
            GUI.skin.label.fontSize = lastFontSize;
            GUI.skin.label.alignment = lastTextAnchor;
        }
    }
Пример #2
0
 public void SetText(string _text, float _time = 0.8f, float _idleTime = 1.2f)
 {
     message = _text;
     maxTime = _time;
     curTime = 0;
     x = minX;
     idleTime = _idleTime;
     state = DynamicTextState.FIRST_STEP;
     bIsActive = true;
 }