unity 中让Text的文字动态刷新形式
第一种刷新文字形式
using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class SensorTextRefresh2
{ // Use this for initialization
string showstring;
public Text _text;
public string otherName = "normal";
string current;
RefreshState refreshState;
int index = ; public void Init(Text _t, string _s, int _index, string _otherName)
{
refreshState = RefreshState.start; _s = float.Parse(_s).ToString("0.00"); if (index == )
{
showstring = _s;
current = _s; }
else if (index == )
{ //if (_text.transform.parent.name == "transmitter" || _text.transform.parent.name == "temperature1")
{
showstring = _s;
current = _s;
}
//else
//{ // showstring = _s + "℃";
// current = _s + "℃";
//} }
else
{ }
_text = _t; index = _index;
otherName = _otherName; //Debug.LogError( " " + _text.transform.parent.parent.parent.name); } public void SetString(string _s)
{
//if (refreshState == RefreshState.start)
{
_s = float.Parse(_s).ToString("0.00"); if (index == )
{
current = _s;
_text.text = "";
_text.text = current;
}
else if (index == )
{
current = _s; _text.text = ""; //if (otherName.Contains("PP"))
//{ // Debug.LogError(" " + _text.text); //}
//if (otherName.Contains("TP"))
//{ // Debug.LogError(" " + _text.text); //}
//if (otherName.Contains("LP"))
//{ // Debug.LogError(" " + _text.text); //}
//if (otherName.Contains("JP"))
//{ // Debug.LogError(" " + _text.text); //}
//if (otherName.Contains("YP"))
//{ // Debug.LogError(" " + _text.text); //} }
else
{ }
}
} // Update is called once per frame
float timer = 1.0f;
float stringLength = ;
float speed = 1.0f;
int i = ;
public void Update()
{ if (_text == null)
return;
if (refreshState == RefreshState.start)
{ _text.text = "";
refreshState = RefreshState.show;
}
if (refreshState == RefreshState.show)
{
stringLength += Time.deltaTime * speed;
if (stringLength <= )
{ string temp = showstring.Substring(, showstring.Length);
//_text.text = temp.Substring(0, (int)stringLength - 1);
//_text.text += "<color=#E7E7E9FF>" + temp.Substring((int)stringLength - 1, 1) + "</color>";
if (otherName.Contains("TP") || otherName.Contains("TF") || otherName.Contains("温度"))
{
_text.text = ("<color=#E7E7E9FF>" + temp.Substring(, showstring.Length) + "</color>" + "℃"); }
else if (otherName.Contains("PP") || otherName.Contains("PF") || otherName.Contains("压力"))
{ _text.text = "<color=#E7E7E9FF>" + temp.Substring(, showstring.Length) + "</color>" + "Mpa"; }
else if (otherName.Contains("JP") || otherName.Contains("YP") || otherName.Contains("LP") || otherName.Contains("JF") || otherName.Contains("YF") || otherName.Contains("LF") || otherName.Contains("计量泵") || otherName.Contains("油剂泵") || otherName.Contains("挤压机频率"))
{
_text.text = "<color=#E7E7E9FF>" + temp.Substring(, showstring.Length) + "</color>" + "Hz";
}
else if (otherName.Contains("电流"))
{ _text.text = "<color=#E7E7E9FF>" + temp.Substring(, showstring.Length) + "</color>" + "A"; } }
else if (stringLength > && stringLength <= )
{ if (otherName.Contains("TP") || otherName.Contains("TF") || otherName.Contains("温度"))
{
_text.text = "℃";
}
else if (otherName.Contains("PP") || otherName.Contains("PF") || otherName.Contains("压力"))
{ _text.text = "Mpa";
}
else if (otherName.Contains("JP") || otherName.Contains("YP") || otherName.Contains("LP") || otherName.Contains("JF") || otherName.Contains("YF") || otherName.Contains("LF") || otherName.Contains("计量泵") || otherName.Contains("油剂泵") || otherName.Contains("挤压机频率"))
{
_text.text = "Hz";
}
else if (otherName.Contains("电流"))
{ _text.text = "A"; }
}
else
{
if (otherName.Contains("TP") || otherName.Contains("TF") || otherName.Contains("温度"))
{
_text.text = showstring.Substring(, (int)showstring.Length) + "℃"; ;
}
else if (otherName.Contains("PP") || otherName.Contains("PF") || otherName.Contains("压力"))
{
_text.text = showstring.Substring(, (int)showstring.Length) + "Mpa";
}
else if (otherName.Contains("JP") || otherName.Contains("YP") || otherName.Contains("LP") || otherName.Contains("JF") || otherName.Contains("YF") || otherName.Contains("LF") || otherName.Contains("计量泵") || otherName.Contains("油剂泵") || otherName.Contains("挤压机频率"))
{
_text.text = showstring.Substring(, (int)showstring.Length) + "Hz";
}
else if (otherName.Contains("电流"))
{ _text.text = showstring.Substring(, (int)showstring.Length) + "A"; } } if (stringLength > 3.0f)
{
//结束
stringLength = ;
refreshState = RefreshState.end;
}
}
if (refreshState == RefreshState.delay)
{ _text.text = ""; stringLength += Time.deltaTime;
if (stringLength >= timer)
{
refreshState = RefreshState.end;
}
}
if (refreshState == RefreshState.end)
{
stringLength = ;
if (!showstring.Equals(current))
{
showstring = current; }
refreshState = RefreshState.start;
} } enum RefreshState
{
start,
show,
delay,
end
}
}
第二种刷新文字形式
using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class SensorTextRefresh1
{ // Use this for initialization
string showstring;
public Text _text;
string current;
RefreshState refreshState;
int index = ;
public void Init(Text _t, string _s)
{
refreshState = RefreshState.start; {
showstring = _s + "℃";
current = _s + "℃";
} _text = _t;
}
public void SetString(string _s)
{
if (refreshState == RefreshState.start)
{ {
current = _s + "℃";
_text.text = "";
}
}
} // Update is called once per frame
float timer = 0.3f;
float stringLength = ;
float speed = 4.0f;
public void Update()
{
if (_text == null)
return;
if (refreshState == RefreshState.start)
{
_text.text = "";
refreshState = RefreshState.show;
}
if (refreshState == RefreshState.show)
{
stringLength += Time.deltaTime * speed;
int a = (int)(stringLength / 0.5f);
if (a % == )
{
//_text.text = showstring.Substring(0, (int)stringLength) + "█";
//_text.text = showstring.Substring(0, (int)stringLength) + "<color=#c6ff00ff>█</color>";
string temp = showstring.Substring(, (int)stringLength);
_text.text = temp.Substring(, (int)stringLength - );
_text.text += "<color=#E7E7E9FF>" + temp.Substring((int)stringLength - , ) + "</color>";
}
else
{
_text.text = showstring.Substring(, (int)stringLength);
}
//_text.text = showstring.Substring(0, (int)stringLength);
if(_text.text.Equals(showstring))
{
//结束
stringLength = ;
refreshState = RefreshState.delay;
}
}
if (refreshState == RefreshState.delay)
{
stringLength += Time.deltaTime;
if(stringLength>=timer)
{
refreshState = RefreshState.end;
}
}
if(refreshState == RefreshState.end)
{
stringLength = ;
if(!showstring.Equals(current))
{
showstring = current;
}
refreshState = RefreshState.start;
} } enum RefreshState
{
start,
show,
delay,
end
}
}
unity 中让Text的文字动态刷新形式的更多相关文章
- 3D语音天气球(源码分享)——在Unity中使用Android语音服务
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 开篇废话: 这个项目准备分四部分介绍: 一:创建可旋转的"3D球":3 ...
- Unity中的万能对象池
本文为博主原创文章,欢迎转载.请保留博主链接http://blog.csdn.net/andrewfan Unity编程标准导引-3.4 Unity中的万能对象池 本节通过一个简单的射击子弹的示例来介 ...
- Unity中的GC以及优化
[简介] 常见的 Unity GC 知识点总结出来的思维导图 Unity 官方文档,正巧在博客园发现了已经有位大神(zblade)把原文翻译出来了,而且质量很高~,译文地址 在这里.下面我就可耻地把译 ...
- 关于Unity中的Bmpfont的使用
系统字体,不占空间,效果一般. 自己拖的.TTF文件形成的字体,占空间很大,有特殊效果.一个TTF字库差不多占用3M左右,之所以这么大,是因为里面包含了所有的字,就像一本字典一样,所以字符都在里面. ...
- 浅谈Unity中的GC以及优化
介绍: 在游戏运行的时候,数据主要存储在内存中,当游戏的数据不在需要的时候,存储当前数据的内存就可以被回收再次使用.内存垃圾是指当前废弃数据所占用的内存,垃圾回收(GC)是指将废弃的内存重新回收再次使 ...
- Unity中对SQL数据库的操作
在Unity中,我们有时候需要连接数据库来达到数据的读取与储存.而在.NET平台下,ADO.NET为我们提供了公开数据访问服务的类.客户端应用程序可以使用ADO.NET来连接到数据源,并查询,添加,删 ...
- 关于Unity中的UGUI优化,你可能遇到这些问题
https://blog.uwa4d.com/archives/QA_UGUI-1.html 关于Unity中的UGUI优化,你可能遇到这些问题 作者:admin / 时间:2016年11月08日 / ...
- 解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式
在上一个样例中,我们得到了由mesh组件传递的信息经过数学转换至合适的颜色区间以颜色的形式着色到物体上. 这篇文章将要在此基础上研究片段的擦除(discarding fragments)和前面剪裁.后 ...
- Unity TextMeshPro替代Text组件创建简体中文字体纹理集
Unity原生的Text组件有一个毛病,只要文本放大字体放大就会有毛边或锯齿,一个更好的解决方案是用TextMeshPro替代ugui中的Text组件. TMPro采用SDF文字渲染技术,可以使文字放 ...
随机推荐
- mysql和oracle分页查询
MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...
- EECS 649 Introduction to Artificial Intelligence
EECS 649 Introduction to Artificial IntelligenceExamElectronic Blackboard Submission Due: April 24, ...
- opencv学习之路(33)、SIFT特征点提取(一)
一.简介 二.OpenCV中的SIFT算法接口 #include "opencv2/opencv.hpp" #include <opencv2/nonfree/nonfree ...
- .equals()到底是什么意思?
.equals() 在Java中判断是否相等,与 == 的区别是 .equals() 只判断值是否相等,不管两者是否存在同一地址.而 == 则是判断值与存在地址都得相等 扩展资料: 由equals的源 ...
- 创建作业(JOB)
在SQL Server日常需求处理中,会遇到定时执行或统计数据的需求,这时我们可以通过作业(JOB)来处理,从而通过代理的方式来实现数据的自动处理.一下为SQL Server中创建作业的脚本,供大家参 ...
- bootstrap table 前后端分页(超级简单)
前端分页:数据库查询所有的数据,在前端进行分页 后端分页:每次只查询当前页面加载所需要的那几条数据 下载bootstrap 下载bootstrap table jquery谁都有,不说了 项目结构:T ...
- 用Tensorflow实现DCGAN
1. GAN简介 最近几年,深度神经网络在图像识别.语音识别以及自然语言处理方面的应用有了爆炸式的增长,并且都达到了极高的准确率,某些方面甚至超过了人类的表现.然而人类的能力远超出图像识别和语音识别的 ...
- Thinkphp5背景图片的引入~ 以及图片的引入
将图片信息从数据库查询 再渲染于前台页面
- 从svn到git开发转变
前言:目前的公司的开发技术还是处于刀耕火种的年代,react,vue已经火到不行了,可是还在用jQuery一遍遍处理着dom.版本控制用的是svn,这里也不是说svn不好,在windows下svn的“ ...
- StringBuffer的delete方法与deleteCharAt方法的区别。
delete方法与deleteCharAt两个方法都是用来删除StringBuffer字符串指定索引字符的方法, delete(int begin,int end)有两个参数,使用时删除索引从be ...