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文字渲染技术,可以使文字放 ...
随机推荐
- Dataframe 多行合并为一行
原表数据: 最后4行合并为1行: def ab(df): return','.join(df.values) df = df.groupby(['股票代码','股票简称'])['所属概念'].appl ...
- gitlab备份
#!/bin/bash backup_date=`date "+%Y_%m_%d"` delete_date=`date +%Y_%m_%d -d "7 days ago ...
- 求最近点对算法分析 closest pair algorithm
这个帖子讲得非常详细严谨,转一波. http://blog.csdn.net/lishuhuakai/article/details/9133961
- Overture小课堂之如何演绎钢琴滑音
在我们学习钢琴和学习使用Overture时,要学习如何弹奏和使用滑音.那么我们先来看看什么是滑音,如何使用钢琴演绎,在Overture里滑音又在哪里呢? 滑音,在音乐术语中通常指一种装饰音和演奏指法. ...
- Sony索尼数码录音笔MSV格式转换为MP3格式【转】
本文转载自:http://blog.sina.com.cn/s/blog_4b2c860f0100d78w.html Sony索尼数码录音笔一般存储为WAV格式,有些没有特意修改存储格式的就保存为MS ...
- C#Razor模板引擎简单使用
引用 install-package RazorEngine 使用 public class TestDemo { private string name; public int Age { get ...
- Redis集群(主从模式)
主从模型 在Redis的集群当中,每个节点(实例)都有一个身份:Master或者Slave,Master:主要负责数据写入,Slave一般提供数据读取,Master与Slave之间是一对多关系,M ...
- loadrunner常用函数集锦
一.三个复制函数的区别: strcpy 原型:extern char *strcpy(char *dest,char *src);用法:#i nclude功能:把src所指由NULL结束的字符串复制到 ...
- Android Studio3.1.2运行模拟器出错Emulator:emulator:ERROR:x86 emulation currently requires hardware acceleration!
出错截图如下所示: 解决方法: 由于我是已经解决了这个问题,安装了Intel x86 Emulator Accelerator,所以显示后面显示的是 Installed,如果报错和我贴的图一样,就可以 ...
- Js拾忆
instanceof运算符:他是判断一个构造函数的prototype是否在对象的原型链上查找到 var a = new Array(); console.log(a instanceof Array) ...