using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// FPS 显示于OnGUI
///
public class FPSOnGUIText : MonoBehaviour
{
float updateInterval = 1.0f; //当前时间间隔
private float accumulated = 0.0f; //在此期间累积
private float frames = 0; //在间隔内绘制的帧
private float timeRemaining; //当前间隔的剩余时间
private float fps = 15.0f; //当前帧 Current FPS
private float lastSample;
void Start()
{
//if (!H5Controller.IsShowFPS())
// Destroy(this);
DontDestroyOnLoad(this.gameObject); //不销毁此游戏对象,在哪个场景都可以显示,不需要则注释
timeRemaining = updateInterval;
lastSample = Time.realtimeSinceStartup; //实时自启动
}
void Update()
{
++frames;
float newSample = Time.realtimeSinceStartup;
float deltaTime = newSample - lastSample;
lastSample = newSample;
timeRemaining -= deltaTime;
accumulated += 1.0f / deltaTime;
if (timeRemaining <= 0.0f)
{
fps = accumulated / frames;
timeRemaining = updateInterval;
accumulated = 0.0f;
frames = 0;
}
}
void OnGUI()
{
GUIStyle style = new GUIStyle
{
border = new RectOffset(10, 10, 10, 10),
fontSize = 50,
fontStyle = FontStyle.BoldAndItalic,
};
//自定义宽度 ,高度大小 颜色,style
GUI.Label(new Rect(Screen.width / 2 - 50, Screen.height - 100, 200, 200), "" + "FPS:" + fps.ToString("f2") + "", style);
}
}