查看当前项目的FPS

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JeanShaw/article/details/78489335

做u3d对于项目的帧率是一定要进行控制的:
把下面的代码挂载到场景中,可以直接进行查看 。

using UnityEngine;
using System.Collections;

public class FpsShower : MonoBehaviour
{

    // Attach this to a GUIText to make a frames/second indicator.
    //
    // It calculates frames/second over each updateInterval,
    // so the display does not keep changing wildly.
    //
    // It is also fairly accurate at very low FPS counts (<10).
    // We do this not by simply counting frames per interval, but
    // by accumulating FPS for each frame. This way we end up with
    // correct overall FPS even if the interval renders something like
    // 5.5 frames.

    public float updateInterval = 0.5F;

    //private float accum = 0; // FPS accumulated over the interval
    private int frames = 0; // Frames drawn over the interval
    private float timeleft; // Left time for current interval

    void Start()
    {
        if (!guiText)
        {
            Debug.Log("UtilityFramesPerSecond needs a GUIText component!");
            enabled = false;
            return;
        }
        timeleft = updateInterval;
        recorTime = Time.realtimeSinceStartup;
    }
    private float recorTime;
    void Update()
    {

        //if (!GameGlobalSetting.Singleton.IsViewDebugInfo)
        //    return;
        timeleft -= Time.deltaTime;
        //accum +=  Time.deltaTime;
        ++frames;



        // Interval ended - update GUI text and start new interval
        if (timeleft <= 0.0)
        {
            // display two fractional digits (f2 format)
            float fps = frames/(Time.realtimeSinceStartup - recorTime);
            string format = System.String.Format("FPS: {0:F2}", fps);
            recorTime = Time.realtimeSinceStartup;
            guiText.text = format;

            if (fps < 30)
                guiText.material.color = Color.yellow;
            else
                if (fps < 10)
                    guiText.material.color = Color.red;
                else
                    guiText.material.color = Color.green;
            //  DebugConsole.Log(format,level);
            timeleft = updateInterval;
            //accum = 0.0F;
            frames = 0;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/JeanShaw/article/details/78489335