背景

Unity 编辑器自带的 Stats 面板可以实时查看帧率,但打包运行后就看不到了。因此在正式运行环境下,我们需要自己在游戏里显示 FPS。

计算原理

FPS 的计算方式非常简单:

FPS = 1 / 当前帧所花时间

实现步骤

  • 在编辑器中新建一个 UI.Text 控件(命名为 text_fps)。
  • 挂载下面这个 C# 脚本,用于每帧更新 FPS 数值。
using UnityEngine;
                using System.Collections;
                using UnityEngine.UI;
                
                
                public class fpsScript : MonoBehaviour {
                
                	public float m_time;
                	public Text text;
                	public float delay=0.0f;
                
                	public int m_count=0;
                
                
                	// Use this for initialization
                	void Start () {
                		Application.targetFrameRate=-1;//set fps of render -1 is max
                
                		m_time = 0.0f;
                
                		text=       GameObject.Find ("text_fps")  .GetComponent<Text>();
                
                
                	}
                
                	// Update is called once per frame
                	void Update () {
                
                		m_count++;
                		if (m_count > 60) {
                			text.text = "FPS:"+ ((int)(1 / delay)).ToString ();
                
                			m_count=0;
                		}
                
                		delay = Time.realtimeSinceStartup - m_time;
                
                		m_time = Time.realtimeSinceStartup;
                
                
                	}
                }