Unity中幀數FPS的顯示查看

顯示幀數

FPS可以用3中方式查看:

開發測試時的Game視圖

如下圖顯示的方式查看:

圖中紅框中的位置就是FPS的顯示。

開發測試時的Profiler視圖

如下圖,通過一下方式可以調出Profiler視圖

下圖爲項目在Unity中測試運行時的Profiler視圖。第一部分CPU的顯示窗口中便有FPS的數值顯示,而且更加直觀。

發佈後的FPS顯示

代碼如下:

using UnityEngine;

/// <summary>
/// 打印FPS
/// </summary>
public class FPS : MonoBehaviour
{
    float _updateInterval = 1f;//設定更新幀率的時間間隔爲1秒  
    float _accum = .0f;//累積時間  
    int _frames = 0;//在_updateInterval時間內運行了多少幀  
    float _timeLeft;
    string fpsFormat;

    void Start()
    {
        _timeLeft = _updateInterval;
    }

    void OnGUI()
    {
        GUI.Label(new Rect(100, 100, 200, 200), fpsFormat);
    }

    void Update()
    {
        _timeLeft -= Time.deltaTime;
        //Time.timeScale可以控制Update 和LateUpdate 的執行速度,  
        //Time.deltaTime是以秒計算,完成最後一幀的時間  
        //相除即可得到相應的一幀所用的時間  
        _accum += Time.timeScale / Time.deltaTime;
        ++_frames;//幀數  

        if (_timeLeft <= 0)
        {
            float fps = _accum / _frames;
            //Debug.Log(_accum + "__" + _frames);  
            fpsFormat = System.String.Format("{0:F2}FPS", fps);//保留兩位小數  
            Debug.LogError(fpsFormat);

            _timeLeft = _updateInterval;
            _accum = .0f;
            _frames = 0;
        }
    }
}

將代碼掛到項目場景的任意物體上即可。運行或發佈之後,便會如下圖紅框中的顯示FPS數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章