Jump to content
Unity Insider Forum

FPS Anzeige


Thariel

Recommended Posts

Hier mein Script zur Anzeige der FPS.

Einfach der Szene hinzufügen (vorzugsweise auf ein Text Ui) und eine Referenz eines beliebigen Text Ui hinzufügen.

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

/// <summary>
/// This script calculate the current fps and show it to a text ui.
/// </summary>
public class UiDisplayFps : MonoBehaviour
{
    public string formatedString = "{value} FPS";
    public Text txtFps;

    public float updateRateSeconds = 4.0F;

    int frameCount = 0;
    float dt = 0.0F;
    float fps = 0.0F;

    void Update()
    {
        frameCount++;
        dt += Time.unscaledDeltaTime;
        if (dt > 1.0 / updateRateSeconds)
        {
            fps = frameCount / dt;
            frameCount = 0;
            dt -= 1.0F / updateRateSeconds;
        }
        txtFps.text = formatedString.Replace("{value}", System.Math.Round(fps, 1).ToString("0.0"));
    }
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

Moinsen
Finde es gut das du dir die mühe gemacht hast eins zuschreiben ^^
Aber Unity hat dies doch schon seit Jahren als Standard Asset integriert ^^
unter Standard Assets/Utility/FPSCounter.cs
Jetzt ist nur die Frage ob deins Effizienter ist da es auch Kompakter ist ^^
Hab deins mal auf das Minimum gekürzt was grad auf die schnelle ging.
weil 

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

brauchste in dem Script sowieso nicht ^^

using UnityEngine; using UnityEngine.UI;
public class FPSC : MonoBehaviour
{   //Vars
#region
public string formatedString = "{value} FPS";
public Text txtFps;
public float updateRateSeconds = 4.0F;
int frameCount = 0;float dt = 0.0F;float fps = 0.0F;
#endregion
void Update(){
frameCount++; dt += Time.unscaledDeltaTime;
if (dt > 1.0 / updateRateSeconds){fps = frameCount / dt; frameCount = 0; dt -= 1.0F / updateRateSeconds;}
txtFps.text = formatedString.Replace("{value}", System.Math.Round(fps, 1).ToString("0.0"));}}

Da man das Script sowieso nicht mehr nachbearbeiten muss kann man es ja so lassen ^^ und später einfach via setactive an oder ausschalten wenn mans mal braucht ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...