UGUI 实现文本打字效果

孙广东 2015.6.17

熟悉NGUI的人可定知道了。

但是NGUI弄的有些繁琐, 感兴趣的人可以将NGUI的TypewriterEffect类转成 UGUI特定的,因为有些以来的其他脚本,不爱弄。

我这个只是简化的内容。够用了

using System;using UnityEngine;using UnityEngine.UI;using UnityEngine.Events;/// <summary>/// 此脚本是能够将文本字符串随着时间打字或褪色显示。/// </summary>[RequireComponent(typeof(Text))][AddComponentMenu("Typewriter Effect")]public class TypewriterEffect : MonoBehaviour{public UnityEvent myEvent;public int charsPerSecond = 0;// public AudioClip mAudioClip;// 打字的声音,,不是没打一个字播放一下,开始的时候播放结束就停止播放private bool isActive = false;private float timer;private string words;private Text mText;void Start(){if (myEvent == null)myEvent = new UnityEvent();words = GetComponent<Text>().text;GetComponent<Text>().text = string.Empty;timer = 0;isActive = true;charsPerSecond = Mathf.Max(1, charsPerSecond);mText = GetComponent<Text>();}void ReloadText(){words = GetComponent<Text>().text;mText = GetComponent<Text>();}public void OnStart(){ReloadText();isActive = true;}void OnStartWriter(){if (isActive){try{mText.text = words.Substring(0, (int) (charsPerSecond * timer));timer += Time.deltaTime;}catch (Exception){OnFinish();}}}void OnFinish(){isActive = false;timer = 0;GetComponent<Text>().text = words;try{myEvent.Invoke();}catch (Exception){Debug.Log("问题");}}void Update(){OnStartWriter();}}

还没有完

想使用前几天 介绍的插件 TextFX 实现这个功能:

业精于勤,荒于嬉;行成于思,毁于随。

UGUI 实现文本打字效果

相关文章:

你感兴趣的文章:

标签云: