在NGUI里有一个现成的脚步可以给Text的文字设置为打字机的效果,而UGUI并没有给我们提供这个方法。
所以下面脚本用来实现这个功能。
效果如下;
实现方法非常简单,直接把下面脚本绑定到Text文本上就可以。
脚本:
[csharp]view plaincopy
usingUnityEngine;
usingSystem.Collections;
usingUnityEngine.UI;
publicclassTypewriter : MonoBehaviour {
publicfloatfSpeed = 0.1f;
Text Showtext;
stringsContent;//文本字符串
intcurPos;//当前文字位置(当前的最后一个字)
voidStart()
{
Showtext = GetComponent();
SetContent();
}
voidSetContent()
{
curPos = 0;
sContent = Showtext.text;
Debug.Log("lenth++"+ sContent.Length);
Showtext.text =string.Empty;
InvokeRepeating("Typing", 0, fSpeed);
}
voidUpdate()
{
if(!sContent.Contains(Showtext.text))
{
Debug.Log("typing");
CancelInvoke("Typing");
SetContent();
}
}
voidTyping()
{
if(sContent.Length - 1 == curPos)//如果当前字符位置等于字符总长度前一个位置就停止调用打字方法
CancelInvoke("Typing");
Showtext.text += sContent.Substring(curPos, 1);//每次都截取到当前位置的下一个字符位置
curPos++;
}
}
网友评论