UGUI简易Typewriter

来源:互联网 发布:oracle sql 语法大全 编辑:程序博客网 时间:2024/05/24 06:05
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using System.Text;


[RequireComponent(typeof(Text))]
public class TypeWriter : MonoBehaviour {


    public float waitTime = 0.05f;
    StringBuilder sb = new StringBuilder();
    Text text;


    private float currentCount;
    private float totalCount;
    private string str = "";


    void Start()
    {
        text = this.GetComponent<Text>();
        str = text.text;
        currentCount = 0;
        totalCount = text.text.Length;
        StartCoroutine(ShowText());
    }


    /// <summary>
    /// 显示文本
    /// </summary>
    /// <returns></returns>
    IEnumerator ShowText()
    {
        while (true)
        {
            currentCount++;


            if (currentCount > totalCount)
            {
                yield break;
            }
            else
            {
                sb.Remove(0, sb.Length);
                for (int i = 0; i < currentCount; i++)
                {
                    sb.Append(str[i]);
                }
                text.text = sb.ToString();
                yield return new WaitForSeconds(waitTime);
            }
        }
    }


    /// <summary>
    /// 重置文本
    /// </summary>
    /// <param name="mText"></param>
    public void ResetText(string mText)
    {
        StopAllCoroutines();


        str = mText;
        currentCount = 0;
        totalCount = mText.Length;
        StartCoroutine(ShowText());
    }




    void OnDestory()
    {
        sb = null;
    }
}
原创粉丝点击