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數據。