UNITY5以后怎么改GUI文字

提要:以前是UNITY4,后来用了新的UI,于是GUIText这种东西就没有了,研究了很久。。。。

----------------------------

这里我想拖个GUI文字框显示FPS,于是代码是这样,这段代码是我在UNITY官方BBS找到并修改的,感谢原作者分享

using UnityEngine;
using System.Collections;
using UnityEngine.UI;           //引用里加入这个

public class getFPS : MonoBehaviour {
    // Use this for initialization


        // Attach this to a GUIText to make a frames/second indicator.
        //
        // It calculates frames/second over each updateInterval,
        // so the display does not keep changing wildly.
        //
        // It is also fairly accurate at very low FPS counts (<10).
        // We do this not by simply counting frames per interval, but
        // by accumulating FPS for each frame. This way we end up with
        // correct overall FPS even if the interval renders something like
        // 5.5 frames.

        public float updateInterval = 0.5F;

        private float accum = 0; // FPS accumulated over the interval
        private int frames = 0; // Frames drawn over the interval
        private float timeleft; // Left time for current interval

        void Start()
        {


            if (!GetComponent<Text>())
            {
                Debug.Log("这个组建需要加载在新UI的Text上");
                enabled = false;
                return;
            }
            timeleft = updateInterval;
        }

        void Update()
        {
            timeleft -= Time.deltaTime;
            accum += Time.timeScale / Time.deltaTime;
            ++frames;

            // Interval ended - update GUI text and start new interval
            if (timeleft <= 0.0)
            {
                // display two fractional digits (f2 format)
                float fps = accum / frames;
                string format = System.String.Format("{0:F2} FPS", fps);
                GetComponent<Text>().text = format;

                if (fps < 30)
                    GetComponent<Text>().material.color = Color.yellow;
                else
                    if (fps < 10)
                        GetComponent<Text>().material.color = Color.red;
                    else
                        GetComponent<Text>().material.color = Color.green;
                //    DebugConsole.Log(format,level);
                timeleft = updateInterval;
                accum = 0.0F;
                frames = 0;
            }
        }
    
}

 

posted on 2015-04-23 15:33  suxsho  阅读(1081)  评论(0编辑  收藏  举报