Afficher les FPS (Frame per second) sur Unity

Hello,

Je viens de constater que de nombreuse personnes se prennent la tête avec ce calcul super simple : Les FPS. C’est pas sorcier, mais bon, faut connaitre le truc pour obtenir un résultat fiable et lisible.

Si vous voulez afficher simplement les FPS, ajoutez cette ligne :

void OnGUI()
{
	GUI.Label(new Rect(0, 0, 100, 50), "FPS: " + (int)(1.0f / Time.smoothDeltaTime));
}

 

Le cast en (int) permet de supprimer les chiffres inutiles après la virgule.

Pour aller plus loin

Si vous voulez contrôler le « smooth » car les FPS varient trop vite, vous pouvez aussi utiliser une variable intermédiaire :

float fps = 0;
void OnGUI()
{
    fps = (9.0f * fps + 1.0f / Time.deltaTime) / 10.0f;
    GUI.Label(new Rect(0, 0, 100, 50), "FPS: " + (int)fps);
}

Une petite explication :

J’utilise la variable fps pour lisser la valeur. Si on affiche directement « 1.0f / Time.deltaTime » , ça fonctionne, mais les valeurs changent si vite que c’est impossible à lire.

Dans mon cas, à chaque frame, la variable fps conserve 90% de sa valeur et va doucement tendre vers  » 1.0f / Time.deltaTime » . C’est une astuce toute simple mais très efficace. je l’utilise très souvent.

Bonne journée.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *