Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Samples/Pinwheel Studio/Scripts/GFpsCounter.cs

83 lines
2.2 KiB
C#

#if GRIFFIN
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
namespace Pinwheel.Griffin
{
public class GFpsCounter : MonoBehaviour
{
public static float msec;
public static float fps;
public static float avgFps
{
get
{
return (minFps + maxFps) / 2;
}
}
public static float maxFps = Mathf.NegativeInfinity;
public static float minFps = Mathf.Infinity;
public bool showFPS;
public Text text;
float deltaTime = 0.0f;
public void Awake()
{
StartCoroutine(ResetCounter(3));
}
void Update()
{
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
msec = deltaTime * 1000.0f;
fps = 1.0f / deltaTime;
minFps = fps < minFps ? fps : minFps;
maxFps = fps > maxFps ? fps : maxFps;
if (showFPS)
text.text = ((int)fps).ToString();
else
text.gameObject.SetActive(false);
}
public IEnumerator ResetCounter(float period)
{
while (true)
{
maxFps = Mathf.NegativeInfinity;
minFps = Mathf.Infinity;
yield return new WaitForSeconds(period);
}
}
//void OnGUI()
//{
// if (!showFPS)
// return;
// int w = Screen.width, h = Screen.height;
// GUIStyle style = new GUIStyle();
// Rect rect = new Rect(0, 0, w, h * 10 / 100);
// style.alignment = TextAnchor.UpperRight;
// style.fontSize = h * 3 / 100;
// style.normal.textColor = new Color(0.0f, 0.0f, 0.5f, 1.0f);
// GUI.Label(rect, "\nMin " + minFps, style);
// GUI.Label(rect, "\n\nMax " + maxFps, style);
// GUI.Label(rect, "\n\n\nAvg " + avgFps, style);
// if (fps < avgFps)
// style.normal.textColor = Color.red;
// else
// style.normal.textColor = Color.green;
// string text = string.Format("{0:0.0} ms ({1:0.} fps)", msec, fps);
// GUI.Label(rect, text, style);
//}
}
}
#endif