美文网首页
获取屏幕的帧数(FPS)

获取屏幕的帧数(FPS)

作者: 迷途小路 | 来源:发表于2019-01-03 09:36 被阅读0次

FPS即每秒屏幕刷新的帧数,即 帧数/时间 ,而Update函数每一帧执行一次,我们可以利用这点很方便的得出FPS,看代码:

public class Test1 : MonoBehaviour {
    float timePassed = 0f;
    float FrameCount = 0f;
    int FPS = 0;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        FrameCount = FrameCount + 1; //帧数+1
        timePassed = timePassed + Time.deltaTime; //时间+Time.deltaTime
        if (timePassed > 1) {                     //每秒测一次
            FPS = (int) (FrameCount / timePassed); //得到FPS
            timePassed = 0f;                       //置零
            FrameCount = 0f;
        }
    }

    void OnGUI () {
        GUI.Label (new Rect (0, 0, 100, 100), "FPS:" + FPS);
    }
}

通过OnGUI里的GUI.Lable方法可以在屏幕内形成文本框,参数1位Rect型,是文本的位置,第二个是文本内容。


image.png

如果我们想调整文本的位置等其他信息,在第三个参数添加上一个GUIStyle类型即可

public class Test1 : MonoBehaviour {
    float timePassed = 0f;
    float FrameCount = 0f;
    int FPS = 0;
    GUIStyle style;

    // Use this for initialization
    void Start () {
        style = new GUIStyle ();
        style.normal.textColor = new Color (1.0f, 0.5f, 0.0f); //颜色
        style.fontSize = 18; //字体大小
    }

    // Update is called once per frame
    void Update () {
        FrameCount = FrameCount + 1; //帧数+1
        timePassed = timePassed + Time.deltaTime; //时间*Time.deltaTime
        if (timePassed > 1) { //每秒测一次
            FPS = (int) (FrameCount / timePassed); //得到FPS
            timePassed = 0f; //置零
            FrameCount = 0f;
        }
    }

    void OnGUI () {
        GUI.Label (new Rect (0, 0, 100, 100), "FPS:" + FPS, style);
    }
}

上面在Start()方法里设置了字体的颜色和大小,然后我们还调整了文本框的位置


image.png

还不错。

相关文章

网友评论

      本文标题:获取屏幕的帧数(FPS)

      本文链接:https://www.haomeiwen.com/subject/acwxrqtx.html