原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1024/124.html
UGUI实现Typewriter Effect(打字机效果)
下面我们常州手游App开发培训专家幻天网络给大家分享的是使用UGUI实现Typewriter Effect打字机效果,创建打字特效控制的脚本,将该脚本挂载都含有Text组件的对象上面,通过该脚本控制Text文本框的文字,以打字机的效果显示文字。

脚本:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TypewriterEffect : MonoBehaviour {
public float charsPerSecond = 0.2f;//打字时间间隔
private string words;//保存需要显示的文字
private bool isActive = false;
private float timer;//计时器
private Text myText;
private int currentPos=0;//当前打字位置
// Use this for initialization
void Start () {
timer = 0;
isActive = true;
charsPerSecond = Mathf.Max (0.2f,charsPerSecond);
myText = GetComponent<Text> ();
words = myText.text;
myText.text = "";//获取Text的文本信息,保存到words中,然后动态更新文本显示内容,实现打字机的效果
}
// Update is called once per frame
void Update () {
OnStartWriter ();
//Debug.Log (isActive);
}
public void StartEffect(){
isActive = true;
}
/// <summary>
/// 执行打字任务
/// </summary>
void OnStartWriter(){
if(isActive){
timer += Time.deltaTime;
if(timer>=charsPerSecond){//判断计时器时间是否到达
timer = 0;
currentPos++;
myText.text = words.Substring (0,currentPos);//刷新文本显示内容
if(currentPos>=words.Length) {
OnFinish();
}
}
}
}
/// <summary>
/// 结束打字,初始化数据
/// </summary>
void OnFinish(){
isActive = false;
timer = 0;
currentPos = 0;
myText.text = words;
}
}
上篇:上一篇:Unity知识总结(一):物体移动方法
下篇:下一篇:U3D总结:相机跟随人物的几种方式