Вешаем его на ГО и наслаждаемся.
Вот основные возможности скрипта:
1.Можно изменять время обновления счетчика в редакторе.
2.Можно изменить режим обновления счетчика (InvokeRepeating или FixedUpdate)
3.Отрисовка на экране от задание координат
4.Отрисовка средного значения FPS.
- Код: Выделить всё
using UnityEngine;
using System.Collections;
public class FpsShow : MonoBehaviour {
public float fpsUpdateInterval = 1.0f;
public bool useInvoke = true;
public bool printAvgFps = false;
public Vector2 pos;
private int fps = 60;
private int fpsAvg = 60;
private float fpsLastUpdate = 0.0f;
private float fpsLastFrame = 0.0f;
void Start () {
if(useInvoke)
InvokeRepeating("UpdateFps", fpsUpdateInterval, fpsUpdateInterval);
}
void UpdateFps()
{
fps = Mathf.RoundToInt((Time.frameCount-fpsLastFrame) / (Time.time-fpsLastUpdate));
fpsAvg = Mathf.RoundToInt(Time.frameCount / Time.time);
fpsLastUpdate = Time.time;
fpsLastFrame = Time.frameCount;
}
void FixedUpdate()
{
if (useInvoke)
return;
if (fpsLastUpdate + fpsUpdateInterval < Time.time)
UpdateFps();
}
void OnGUI()
{
GUI.Label(new Rect(pos.x, pos.y, 100, 20), "FPS:"+fps.ToString());
if(printAvgFps)
GUI.Label(new Rect(pos.x, pos.y+20, 100, 20), "FPS avg:"+fpsAvg.ToString());
}
}