• 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 = 0;
    
        public void Init(Text _t, string _s, int _index, string _otherName)
        {
            refreshState = RefreshState.start;
    
            _s = float.Parse(_s).ToString("0.00");
    
            if (index == 0)
            {
                showstring = _s;
                current = _s;
    
            }
            else if (index == 1)
            {
    
                //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 == 0)
                {
                    current = _s;
                    _text.text = "";
                    _text.text = current;
                }
                else if (index == 1)
                {
                    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 = 0;
        float speed = 1.0f;
        int i = 0;
        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 <= 1)
                {
    
                    string temp = showstring.Substring(0, 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(0, showstring.Length) + "</color>" + "");
    
                    }
                    else if (otherName.Contains("PP") || otherName.Contains("PF") || otherName.Contains("压力"))
                    {
    
                        _text.text = "<color=#E7E7E9FF>" + temp.Substring(0, 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(0, showstring.Length) + "</color>" + "Hz";
                    }
                    else if (otherName.Contains("电流"))
                    {
    
                        _text.text = "<color=#E7E7E9FF>" + temp.Substring(0, showstring.Length) + "</color>" + "A";
    
                    }
    
                }
                else if (stringLength > 1 && stringLength <= 2)
                {
    
                    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(0, (int)showstring.Length) + ""; ;
                    }
                    else if (otherName.Contains("PP") || otherName.Contains("PF") || otherName.Contains("压力"))
                    {
                        _text.text = showstring.Substring(0, (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(0, (int)showstring.Length) + "Hz";
                    }
                    else if (otherName.Contains("电流"))
                    {
    
                        _text.text = showstring.Substring(0, (int)showstring.Length) + "A";
    
                    }
    
                }
    
                if (stringLength > 3.0f)
                {
                    //结束
                    stringLength = 0;
                    refreshState = RefreshState.end;
                }
            }
            if (refreshState == RefreshState.delay)
            {
    
                _text.text = "";
    
    
                stringLength += Time.deltaTime;
                if (stringLength >= timer)
                {
                    refreshState = RefreshState.end;
                }
            }
            if (refreshState == RefreshState.end)
            {
                stringLength = 0;
                if (!showstring.Equals(current))
                {
                    showstring = current;
    
                }
                refreshState = RefreshState.start;
            }
    
        }
    
        enum RefreshState
        {
            start,
            show,
            delay,
            end
        }
    }
    View Code

    第二种刷新文字形式

    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 = 0;
        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 = 0;
        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 % 2 == 0)
                {
                    //_text.text = showstring.Substring(0, (int)stringLength) + "█";
                    //_text.text = showstring.Substring(0, (int)stringLength) + "<color=#c6ff00ff>█</color>";
                    string temp = showstring.Substring(0, (int)stringLength);
                    _text.text = temp.Substring(0, (int)stringLength - 1);
                    _text.text += "<color=#E7E7E9FF>" + temp.Substring((int)stringLength - 1, 1) + "</color>";
                }
                else
                {
                    _text.text = showstring.Substring(0, (int)stringLength);
                }
                //_text.text = showstring.Substring(0, (int)stringLength);
                if(_text.text.Equals(showstring))
                {
                    //结束
                    stringLength = 0;
                    refreshState = RefreshState.delay;
                }
            }
            if (refreshState == RefreshState.delay)
            {
                stringLength += Time.deltaTime;
                if(stringLength>=timer)
                {
                    refreshState = RefreshState.end;
                }
            }
            if(refreshState == RefreshState.end)
            {
                stringLength = 0;
                if(!showstring.Equals(current))
                {
                    showstring = current;
                }
                refreshState = RefreshState.start;
            }
    
        }
    
        enum RefreshState
        {
            start,
            show,
            delay,
            end
        }
    }
    View Code
  • 相关阅读:
    Linux下Samba的配置
    NYoj-街区最短路径问题
    Merge into的使用具体解释-你Merge了没有
    c++11 stl atomic_flag 样例
    7个最好的免费杀毒软件下载
    关于PCA算法的一点学习总结
    linux查看硬件信息
    js php xmlrequest 上传图片
    BZOJ1827 [Usaco2010 Mar]gather 奶牛大集会
    只有小于65535端口编程可以用,查看哪些端口被打开netstat -anp,nc命令,nmap命令
  • 原文地址:https://www.cnblogs.com/Study088/p/9610190.html
Copyright © 2020-2023  润新知