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数据。