原创内容,转载请注明原文网址: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总结:相机跟随人物的几种方式




