版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JeanShaw/article/details/78489335
做u3d对于项目的帧率是一定要进行控制的:
把下面的代码挂载到场景中,可以直接进行查看 。
using UnityEngine;
using System.Collections;
public class FpsShower : MonoBehaviour
{
// Attach this to a GUIText to make a frames/second indicator.
//
// It calculates frames/second over each updateInterval,
// so the display does not keep changing wildly.
//
// It is also fairly accurate at very low FPS counts (<10).
// We do this not by simply counting frames per interval, but
// by accumulating FPS for each frame. This way we end up with
// correct overall FPS even if the interval renders something like
// 5.5 frames.
public float updateInterval = 0.5F;
//private float accum = 0; // FPS accumulated over the interval
private int frames = 0; // Frames drawn over the interval
private float timeleft; // Left time for current interval
void Start()
{
if (!guiText)
{
Debug.Log("UtilityFramesPerSecond needs a GUIText component!");
enabled = false;
return;
}
timeleft = updateInterval;
recorTime = Time.realtimeSinceStartup;
}
private float recorTime;
void Update()
{
//if (!GameGlobalSetting.Singleton.IsViewDebugInfo)
// return;
timeleft -= Time.deltaTime;
//accum += Time.deltaTime;
++frames;
// Interval ended - update GUI text and start new interval
if (timeleft <= 0.0)
{
// display two fractional digits (f2 format)
float fps = frames/(Time.realtimeSinceStartup - recorTime);
string format = System.String.Format("FPS: {0:F2}", fps);
recorTime = Time.realtimeSinceStartup;
guiText.text = format;
if (fps < 30)
guiText.material.color = Color.yellow;
else
if (fps < 10)
guiText.material.color = Color.red;
else
guiText.material.color = Color.green;
// DebugConsole.Log(format,level);
timeleft = updateInterval;
//accum = 0.0F;
frames = 0;
}
}
}