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;
}
}
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;
}
}