创建打字特效控制的脚本,将该脚本挂载都含有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; void Start () {
timer = 0;
isActive = true;
charsPerSecond = Mathf.Max (0.2f,charsPerSecond);
myText = GetComponent<Text> ();
words = myText.text;
myText.text = "";//获取Text的文本信息,保存到words中,然后动态更新文本显示内容,实现打字机的效果
} void Update () {
OnStartWriter ();
} 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;
}
}

最新文章

  1. redis 常用命令
  2. VUE JS 使用组件实现双向绑定
  3. Android Full Screen
  4. Installing MySQL Server on CentOS
  5. C#后台弹出对话框
  6. Linux驱动开发 -- 打开dev_dbg() 【转】
  7. 从零开始运维之旅:如何监控你的 Windows?
  8. Android(java)学习笔记150:为什么局部内部类只能访问外部类中的 final型的常量
  9. HTTP状态码(HTTP Status Code)【转】
  10. JavaScript call()和apply()
  11. springboot springmvc拦截器 拦截POST、PUT、DELETE请求参数和响应数据,并记录操作日志
  12. json 解析错误的问题
  13. [IIS]win7下怎么安装IIS
  14. Matlab function lorenzgui
  15. 学习笔记之form表单
  16. js代码执行过程
  17. PHP 异步使用swoole的可行性测试
  18. Java循环中标签的作用(转)
  19. chmod 权限 命令详细用法
  20. 一、Python 模块EasyGui详细介绍

热门文章

  1. mac Gitblit安装
  2. [bzoj1552\bzoj2506][Cqoi2014]robotic sort 排序机械臂_非旋转Treap
  3. 为什么用clojure作为storm 的主要开发语言
  4. 允许远程访问MySQL的设置
  5. ntp服务及时间同步问题
  6. struts1——静态ActionForm与动态ActionForm
  7. 程序员(媛)Shell脚本必备技能之中的一个: 在Linux下怎样自己主动备份mysql数据
  8. 南海区行政审批管理系统接口规范v0.3(规划)4.1.【queryAcceptById】业务明细查询
  9. (Go)02.go 安装delve调试工具测试
  10. 【优化算法】遗传算法GA求解混合流水车间调度问题(附C++代码)