Unity Fps示例
https://mp.weixin.qq.com/s/JGnU6TW1V0BCrz0mCRswig
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Getfps : MonoBehaviour { int tick = 0; float elapsed = 0; float fps = 0; // Use this for initialization void Start () { } // Update is called once per frame void Update () { tick++; elapsed += Time.deltaTime; if (elapsed >= 1f) { fps = tick / elapsed; tick = 0; elapsed = 0; } Debug.Log("FPS: "+fps); } }
using UnityEngine; using System.Collections; public class ShowFPS_OnGUI : MonoBehaviour { public float fpsMeasuringDelta = 2.0f; private float timePassed; private int m_FrameCount = 0; private float m_FPS = 0.0f; private void Start() { timePassed = 0.0f; } private void Update() { m_FrameCount = m_FrameCount + 1; timePassed = timePassed + Time.deltaTime; if (timePassed > fpsMeasuringDelta) { m_FPS = m_FrameCount / timePassed; timePassed = 0.0f; m_FrameCount = 0; } } private void OnGUI() { GUIStyle bb = new GUIStyle(); bb.normal.background = null; //这是设置背景填充的 bb.normal.textColor = new Color(1.0f, 0.5f, 0.0f); //设置字体颜色的 bb.fontSize = 40; //当然,这是字体大小 //居中显示FPS GUI.Label(new Rect((Screen.width/2)-40, 0, 200, 200), "FPS: " + m_FPS, bb); } }
Unity Fps示例
https://mp.weixin.qq.com/s/JGnU6TW1V0BCrz0mCRswig
public class FPS : MonoBehaviour { public float FPSCount; public bool _isShow = true; IEnumerator Start() { //GUI.depth = 2; while (true) { if (Time.timeScale == 1) { yield return new WaitForSeconds(0.1f); FPSCount = Mathf.Round(1 / Time.deltaTime); } else { FPSCount = 0; } yield return new WaitForSeconds(0.5f); } } private void OnGUI() { if(_isShow) GUI.Label(new Rect(Screen.width-50, Screen.height - 50, 100, 100), FPSCount.ToString()); } }
1)笔记
1)什么是fps? (1)计算机是一个离散的世界,每隔一段时间绘制一下这个世界的样子,再隔一段时间, 再绘制一下世界的样子,再绘制一下世界的样子...如果绘制的间隔足够小,那么人 眼则认为它是连续的; (2)游戏每间隔一段时间不断刷新画面,驱动游戏世界往前走, FPS: frame per second 每秒刷新多少次; 2)FPS形象举例: 从A到B点,帧率高的绘制次数就多,过程中的状态,次数就多一点,这个动 画看上去就流畅一点,所以fps是衡量游戏运行流畅程度的一个表示; 3)Update函数: 每一次游戏刷新的时候,会被调用,所以我们要统计帧率是多少, 我们就要在Update中累计一段时间之内,我们刷过的帧的次数,到时候我们显示 帧率的时候,把这个fps挂到这个根节点上; 4)fps算法: 在固定的一段时间内,累计刷新的帧数,当世间到了后,算出fps,并显示出来; 5)OnGUI: 每次在GUI刷新的时候调用; (0,0)是左上角开始的;