一。实时侦测帧数

2018-10-13  本文已影响0人  熬夜Plus

通过每0.5秒测量帧数(Update执行的次数),再相除并取整,得到每半秒更新一次的fps值。

不需要使用协程,现将代码粘贴如下。

public class FPSCounter : MonoBehaviour

    {

        const float fpsMeasurePeriod = 0.5f;      

//测量周期

        private int m_FpsAccumulator = 0;        

//累加器

        private float m_FpsNextPeriod = 0;    
//下一次测量的时间

        private int m_CurrentFps;                

//当前的fps

        const string display = "{0} FPS";

        private Text m_Text;

        private void Start()

        {

            m_FpsNextPeriod = Time.realtimeSinceStartup + fpsMeasurePeriod;

            m_Text = GetComponent<Text>();

        }

        private void Update()

        {

// 测量每秒的平均帧数

            m_FpsAccumulator++;

//游戏开始到现在的实时时间和下一次测量的标准时间做比较

            if (Time.realtimeSinceStartup > m_FpsNextPeriod)

            {

                m_CurrentFps = (int) (m_FpsAccumulator/fpsMeasurePeriod);

//if成立时的积累了的帧数除以0.5,强制为整数

                m_FpsAccumulator = 0;

//重置帧数计数器

                m_FpsNextPeriod += fpsMeasurePeriod;                      

//下一个if将在0.5秒后成立

                m_Text.text = string.Format(display, m_CurrentFps);       

//更新text组件

            }

        }

    }

上一篇 下一篇

猜你喜欢

热点阅读