Unity Show FPS in scene

· 1 min read
Unity Show FPS in scene

The following script will help you to show FPS in scene:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FBSManager : MonoBehaviour
{
    public int rangeInt;
    public float updateInterval = 0.5F;
    private float accum = 0;
    private int frames = 0;
    private float timeleft;
    private string stringFps;

    void Start()
    {
        timeleft = updateInterval;
        Application.targetFrameRate = 30;
    }

    void Update()
    {
        timeleft -= Time.deltaTime;
        accum += Time.timeScale / Time.deltaTime;
        ++frames;
        if (timeleft <= 0.0)
        {
            float fps = accum / frames;
            string format = System.String.Format("{0:F2} FPS", fps);
            stringFps = format;
            timeleft = updateInterval;
            accum = 0.0F;
            frames = 0;
        }
    }

    void OnGUI()
    {
        GUIStyle guiStyle = GUIStyle.none;
        guiStyle.fontSize = 30;
        guiStyle.normal.textColor = Color.red;
        guiStyle.alignment = TextAnchor.UpperLeft;
        Rect rt = new Rect(50, 50, 100, 100);
        GUI.Label(rt, stringFps, guiStyle);
    }
}

How to use?

If you have a GameManager in your scene, add the above script as a component to it. Or you can attach this script to the camera. One example: