获取屏幕的帧数(FPS)

FPS即每秒屏幕刷新的帧数,即 帧数/时间 ,而Update函数每一帧执行一次,我们可以利用这点很方便的得出FPS,看代码:

public class Test1 : MonoBehaviour {
    float timePassed = 0f;
    float FrameCount = 0f;
    int FPS = 0;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        FrameCount = FrameCount + 1; //帧数+1
        timePassed = timePassed + Time.deltaTime; //时间+Time.deltaTime
        if (timePassed > 1) {                     //每秒测一次
            FPS = (int) (FrameCount / timePassed); //得到FPS
            timePassed = 0f;                       //置零
            FrameCount = 0f;
        }
    }

    void OnGUI () {
        GUI.Label (new Rect (0, 0, 100, 100), "FPS:" + FPS);
    }
}

通过OnGUI里的GUI.Lable方法可以在屏幕内形成文本框,参数1位Rect型,是文本的位置,第二个是文本内容。


image.png

如果我们想调整文本的位置等其他信息,在第三个参数添加上一个GUIStyle类型即可

public class Test1 : MonoBehaviour {
    float timePassed = 0f;
    float FrameCount = 0f;
    int FPS = 0;
    GUIStyle style;

    // Use this for initialization
    void Start () {
        style = new GUIStyle ();
        style.normal.textColor = new Color (1.0f, 0.5f, 0.0f); //颜色
        style.fontSize = 18; //字体大小
    }

    // Update is called once per frame
    void Update () {
        FrameCount = FrameCount + 1; //帧数+1
        timePassed = timePassed + Time.deltaTime; //时间*Time.deltaTime
        if (timePassed > 1) { //每秒测一次
            FPS = (int) (FrameCount / timePassed); //得到FPS
            timePassed = 0f; //置零
            FrameCount = 0f;
        }
    }

    void OnGUI () {
        GUI.Label (new Rect (0, 0, 100, 100), "FPS:" + FPS, style);
    }
}

上面在Start()方法里设置了字体的颜色和大小,然后我们还调整了文本框的位置


image.png

还不错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。