Contador FPS Unity

Em videogames, quadros por segundo (ou fps para abreviar) é um valor que representa o número de quadros que o computador renderiza em um segundo.

Frames-per-second é um ótimo indicador de desempenho e pode ser usado durante a otimização, ou simplesmente para obter feedback sobre a velocidade/suavidade do jogo.

Neste tutorial, mostrarei como adicionar um simples contador de fps ao seu jogo em Unity.

Passos

Para mostrar fps no jogo, precisaremos criar um script que contará frames e os mostrará na tela.

  • Crie um novo script, chame-o de "SC_FPSCounter" e cole o código abaixo dentro dele:

SC_FPSCounter.cs

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

public class SC_FPSCounter : MonoBehaviour
{
    /* Assign this script to any object in the Scene to display frames per second */

    public float updateInterval = 0.5f; //How often should the number update

    float accum = 0.0f;
    int frames = 0;
    float timeleft;
    float fps;

    GUIStyle textStyle = new GUIStyle();

    // Use this for initialization
    void Start()
    {
        timeleft = updateInterval;

        textStyle.fontStyle = FontStyle.Bold;
        textStyle.normal.textColor = Color.white;
    }

    // Update is called once per frame
    void Update()
    {
        timeleft -= Time.deltaTime;
        accum += Time.timeScale / Time.deltaTime;
        ++frames;

        // Interval ended - update GUI text and start new interval
        if (timeleft <= 0.0)
        {
            // display two fractional digits (f2 format)
            fps = (accum / frames);
            timeleft = updateInterval;
            accum = 0.0f;
            frames = 0;
        }
    }

    void OnGUI()
    {
        //Display the fps and round to 2 decimals
        GUI.Label(new Rect(5, 5, 100, 25), fps.ToString("F2") + "FPS", textStyle);
    }
}
  • Anexe o script SC_FPSCounter a qualquer objeto na cena e pressione Play:

Quadros por segundo

Fps agora deve ser exibido no canto superior esquerdo.