作者:123sdf87_768 | 来源:互联网 | 2023-05-17 23:49
FPS是衡量游戏性能的一个重要指标,Unity是跨平台的引擎工具,所以没有统一限定他的帧速率。在PC平台,一般说来是越高越好,FPS越高,游戏越流畅。在手机平台,普遍的流畅指标为60帧,能跑
FPS是衡量游戏性能的一个重要指标,Unity是跨平台的引擎工具,所以没有统一限定他的帧速率。
在PC平台,一般说来是越高越好,FPS越高,游戏越流畅。
在手机平台,普遍的流畅指标为60帧,能跑到60帧,就是非常流畅的体验了,再高的话一来差别很小,二来帧数太高,会耗费CPU和GPU,会导致发热和耗电量大。
public class example : MonoBehaviour{ public float updateInterval = 0.5F; private double lastInterval; private int frames = 0; private float fps; void Start() { lastInterval = Time.realtimeSinceStartup; frames = 0; } void OnGUI() { GUILayout.Label(" " + fps.ToString("f2")); } void Update() { ++frames; float timeNow = Time.realtimeSinceStartup; if (timeNow > lastInterval + updateInterval) { fps = (float)(frames / (timeNow - lastInterval)); frames = 0; lastInterval = timeNow; } }}
using UnityEngine;
using System.Collections;
public class ShowFPS : MonoBehaviour {
public float f_UpdateInterval = 0.5F;
private float f_LastInterval;
private int i_Frames = 0;
private float f_Fps;
void Start()
{
//Application.targetFrameRate=60;
f_LastInterval = Time.realtimeSinceStartup;
i_Frames = 0;
}
void OnGUI()
{
GUI.Label(new Rect(0, 100, 200, 200), "FPS:" + f_Fps.ToString("f2"));
}
void Update()
{
++i_Frames;
if (Time.realtimeSinceStartup > f_LastInterval + f_UpdateInterval)
{
f_Fps = i_Frames / (Time.realtimeSinceStartup - f_LastInterval);
i_Frames = 0;
f_LastInterval = Time.realtimeSinceStartup;
}
}
}