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文字渲染技术,可以使文字放 ...
随机推荐
- 1.5:Unity Render Pipeline
文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 这一节主要是为上一节中没有提到的一些概念作补充. 上一节提到了Unity中 ...
- springMVC注解总结
由于BookController类加了value="/book"的@RequestMapping的注解,所以相关路径都要加上"/book",即请求的url分别为 ...
- PHP操作RabbitMQ的类 exchange、queue、route kye、bind
RabbitMQ是常见的消息中间件.也许是还是不够了解的缘故,感觉功能还好吧. 讲到队列,大家脑子里第一印象是下边这样的. P生产者推送消息-->队列-->C消费者取出消息 结构很简单,但 ...
- Linux操作系统中系统调用接口
进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 终止进程 _exit 立即终止当前进程 getdtablesize 进程所能打开的最大文件 ...
- HTML与CSS的一些知识(一)
一般写代码的时候,总会有些小错误.为了便于修改以及查找,所以代码格式要写规范,而且一定一定要写注释.因为有时候代码写得多了,真的连自己都找不到自己要找的东西在哪里.还有命名也要见名知意. 再说一些HT ...
- 【做题】ECFinal2018 J - Philosophical … Balance——dp
原文链接 https://www.cnblogs.com/cly-none/p/ECFINAL2018J.html 题意:给出一个长度为\(n\)的字符串\(s\),要求给\(s\)的每个后缀\(s[ ...
- SPOJ 375 QTREE - Query on a tree
思路 注意本题只能用C,不能用C++ 其他的都和上一题一样 代码 #include <stdio.h> #include <string.h> #define MAXN 100 ...
- 前端——BOM和DOM
要想和浏览器有交互的动作,即要继续学习DOM,BOM. JavaScript分为 ECMAScript,DOM,BOM. BOM (Browser Object Model) 是指浏览器对象模型,他使 ...
- linux下自动获取并安装软件包 apt-get 的命令介绍
apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-get install p ...
- bug日记之---------js中调用另一个js中的有ajax的方法, 返回值为undefind
今天做一个OCR授权的需求, 需要开发一个OCR弹框, 让用户选择是否授权给第三方识别公司(旷世科技)保存和识别用户个人信息, 照片等. 其中用到了在一个js的方法中调用另外一个js的方法, 其中有一 ...