Unity的学习笔记(UGUI文本逐个字输出)
之前在网上找过各种的逐个输出字,我可能理解能力不好,照着代码复制没有能使用成功,于是自己研究了很多网上说的思路,各种改良出了一个能用的,写完自己测试,觉得还真好用,于是记录下来
用法:将用代码组件挂上去,通过查找到代码组件,通过enabled来控制组件开关,每次更新文字时候,让组件进行一次关闭和开启,就能再次逐个显示
using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class WordOutPut : MonoBehaviour
{ public float charsPerSecond = 0.05f;//打字时间间隔
private string words;//保存需要显示的文字 private bool isActive = false; //判断是否开始输出
private float timer;//计时器
private Text myText;//获取身上的test脚本
private int currentPos = ;//当前打字位置 // Use this for initialization
private void OnDisable()
{
OnFinish();//当脚本在失活的时候,将数据进行重置
}
/// <summary>
/// 当脚本被激活的时候,将数据进行初始化
/// </summary>
private void OnEnable()
{
timer = ;
isActive = true;
charsPerSecond = Mathf.Max(0.02f, charsPerSecond); //将最小的出字速度限制为0.02,也可以自行调整
myText = GetComponent<Text>();
words = myText.text;
myText.text = "";//获取Text的文本信息,保存到words中,然后动态更新文本显示内容,实现打字机的效果
}
void Start()
{
} // Update is called once per frame
void Update()
{
OnStartWriter();
//Debug.Log (isActive);
}
/// <summary>
/// 执行打字任务
/// </summary>
void OnStartWriter()
{ if (isActive)
{
timer += Time.deltaTime;
if (timer >= charsPerSecond)//判断计时器时间是否到达
{
timer = ;
currentPos++;
//这里其实还可以做一个改良,可以检测一个input用户输入,如果输入了,则让currentPos = words.Length,这样可以实现按下按键,马上就显示完毕
myText.text = words.Substring(, currentPos);//刷新文本显示内容 if (currentPos >= words.Length)
{
OnFinish();
}
} }
}
/// <summary>
/// 结束打字,初始化数据
/// </summary>
void OnFinish()
{
isActive = false;
timer = ;
currentPos = ;
myText.text = words;
} }
Unity的学习笔记(UGUI文本逐个字输出)的更多相关文章
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
		
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
 - Java学习笔记:基本输入、输出数据操作实例分析
		
Java学习笔记:基本输入.输出数据操作.分享给大家供大家参考,具体如下: 相关内容: 输出数据: print println printf 输入数据: Scanner 输出数据: JAVA中在屏幕中 ...
 - Unity Shader学习笔记-1
		
本篇文章是对Unity Shader入门精要的学习笔记,插图大部分来自冯乐乐女神的github 如果有什么说的不正确的请批评指正 目录 渲染流水线 流程图 Shader作用 屏幕映射 三角形遍历 两大 ...
 - 网络协议学习笔记(五)套接字Socket
		
概述 前面学习网络知识的时候写过一篇关于套接字的随笔见<JAVA SOCKET 详解>,现在本人正在系统的学习网络知识,现在除了温故知新之外,在详细的学习记录一下套接字的知识. Socke ...
 - Webpack4 学习笔记五 图片解析、输出的文件划分目录
		
前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack打包图片和划分文件路径 使用图片的方式 通过 new Image() 在 css中设置 background-imag ...
 - web前端学习笔记:文本属性
		
今天的web前端笔记主要讲述文本属性,希望能帮助到正在学习web前端开发的初学者们,废话不多说了,一起来看看文本属性的相关内容吧. 文本属性 文本缩进 将Web页面上的一个段落第一行缩进,这是一种最常 ...
 - Unity sqlite学习笔记一
		
1.SQLITE的常识 SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它. sqlite的主要优点:零配置(Zero Configur ...
 - linux学习笔记之套接字
		
一.基础知识. 1:套接字基础. 1,是通信端点的抽象. 2,在UNIX类系统中被当作是一种文件描述符. 3,套接字通信域. 域 描述 AF_INET IPV4因特网域 AF_INET6 IPV6因特 ...
 - CSS学习笔记:文本换行显示(word-wrap)
		
在CSS3中新定义了文本换行属性,word-wrap: nomal属性值表示控制连续文本换行. break-word属性值表示内容将在边界内换行.如果需要,词内换行(word-break)也会发生. ...
 
随机推荐
- 【UVA11134】传说中的车
			
横纵坐标互不影响,所以问题转化到一维:在n个区间中每个区间选一个数,n个数都被选一次 将区间按右端点排序,枚举区间,每个区间选最靠左的没被选过的点 #include<algorithm> ...
 - mysql  添加表字段
			
mysql> alter table table1 add price ) not null; Query OK, rows affected (0.05 sec) Records: Dupli ...
 - node省市区三级数据性能测评
			
闲来无事,测试下node和egg 首先是数据库,大概长这样 然后是代码 'use strict'; const Controller = require('egg').Controller; clas ...
 - crontab定时任务接入
			
# 查看 $ crontab -l # 创建 $ crontab -e # 每分钟输出一次当前时间 * * * * * echo `date` >> /demo.log # 查看定时 $ ...
 - semi-join子查询优化 -- FirstMatch策略
			
FirstMatch执行semi-join子查询的一种策略. 类似于MySQL 5.x中如何执行in.exists子查询. 让我们以搜索拥有大城市的国家为例: select * from Countr ...
 - 三层架构BLL+DAL+Model  & MVC & MVVM
			
三层架构 - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=%E4%B8%89%E5%B1%82%E6%9E%B6% ...
 - 微信小程序开发——base64位图片显示问题
			
前言: 目前小程序项目需要后端借口提供验证码图片,后端是以base64位返回的,按照H5的做法,前边拼上 data:image/png;base64, 应该就可以了,关键代码如下: H5: <i ...
 - Python3基础 函数 __name__ 得到引用所指向的真正名字
			
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
 - 获取进程 pid 以及命令参数
			
方法一: wmic process where name="node.exe" get ProcessId,CommandLine 方法二: tlist -c
 - 如何自己构建一套EasyNVR这样的无插件流媒体服务器实现摄像机硬盘录像机的网页可视化直播
			
EasyNVR流媒体解决方案 EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera.NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNV ...