UGUI简易Typewriter

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;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值