| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using UnityEngine;
- /// <summary>
- /// 打印FPS
- /// </summary>
- public class FPS : MonoBehaviour
- {
- float _updateInterval = 1f;//设定更新帧率的时间间隔为1秒
- float _accum = .0f;//累积时间
- int _frames = 0;//在_updateInterval时间内运行了多少帧
- float _timeLeft;
- string fpsFormat;
- void Start()
- {
- _timeLeft = _updateInterval;
- }
- bool FPS_True = false;
- void OnGUI()
- {
- if (FPS_True)
- {
- GUI.Label(new Rect(100, 100, 200, 200), fpsFormat);
- }
- }
- void Update()
- {
- if (Input.GetKeyDown(KeyCode.X))
- {
- FPS_True = !FPS_True;
- }
- _timeLeft -= Time.deltaTime;
- //Time.timeScale可以控制Update 和LateUpdate 的执行速度,
- //Time.deltaTime是以秒计算,完成最后一帧的时间
- //相除即可得到相应的一帧所用的时间
- _accum += Time.timeScale / Time.deltaTime;
- ++_frames;//帧数
- if (_timeLeft <= 0)
- {
- float fps = _accum / _frames;
- //Debug.Log(_accum + "__" + _frames);
- fpsFormat = System.String.Format("{0:F2}FPS", fps);//保留两位小数
- //Debug.LogError(fpsFormat);
- _timeLeft = _updateInterval;
- _accum = .0f;
- _frames = 0;
- }
- }
- }
|