老规矩,先介绍一下 Unity 的科普小知识:
帧率
在一个游戏中的作用举足轻重,帧率
能体现一个游戏运行的是否流畅
简而言之就是在一秒钟内运行的总帧数,就称为帧率
现在的电脑、手机和游戏中都有帧率这一说,帧率越高内容越丝滑,所以高帧率一直深受人们喜欢
Unity中的帧率有以下几种方法查看:
将以下代码放到Update中即可,
float FPS = 1 / Time.deltaTime;
效果如下
public Text FPS_Text;
private float m_LastUpdateShowTime = 0f; //上一次更新帧率的时间;
private float m_UpdateShowDeltaTime = 0.2f;//更新帧率的时间间隔;
private int m_FrameUpdate = 0;//帧数;
private float m_FPS = 0;//帧率
private void Start()
{
m_LastUpdateShowTime = Time.realtimeSinceStartup;
}
private void Update()
{
m_FrameUpdate++;
if (Time.realtimeSinceStartup - m_LastUpdateShowTime >= m_UpdateShowDeltaTime)
{
//FPS = 某段时间内的总帧数 / 某段时间
m_FPS = m_FrameUpdate / (Time.realtimeSinceStartup - m_LastUpdateShowTime);
m_FrameUpdate = 0;
m_LastUpdateShowTime = Time.realtimeSinceStartup;
FPS_Text.text = (1 / Time.deltaTime).ToString();
}
}
这段代码的含义就是用 某段时间内的总帧数 / 某段时间来计算出帧率,顺便还可以加一个更新帧率的时间间隔
上述代码也可以写成这样:
public Text FPS_Text;
private float m_UpdateShowDeltaTime;//更新帧率的时间间隔;
private int m_FrameUpdate = 0;//帧数;
private float m_FPS = 0;//帧率
private void Update()
{
m_FrameUpdate++;
m_UpdateShowDeltaTime += Time.deltaTime;
if (m_UpdateShowDeltaTime>=0.2)
{
m_FPS = m_FrameUpdate / m_UpdateShowDeltaTime;
m_UpdateShowDeltaTime = 0;
m_FrameUpdate = 0;
FPS_Text.text = m_FPS.ToString();
}
}
效果如下,每0.5秒更新一下帧率显示