Unity中显示运行时游戏帧率的方法

帧率在一个游戏中的作用举足轻重,帧率能体现一个游戏运行的是否流畅

 

帧率 = 某段时间内的总帧数 / 某段时间

帧率 = 1帧 / 运行一帧所需要的时间

简而言之就是在一秒钟内运行的总帧数,就称为帧率

 

Unity中的帧率有以下几种方法查看:

第一种, 在Game视图中点击Stats按钮,即可查看游戏帧率

第二种,使用代码:FPS=1 / Time.deltaTime

将以下代码放到Update中即可:

float FPS = 1 / Time.deltaTime;

效果如下:

第三种,使用代码:FPS = 某段时间内的总帧数 / 某段时间

    public Text FPS_Text;
    private float m_LastUpdateShowTime = 0f;  //上一次更新帧率的时间;  
    private float m_UpdateShowDeltaTime = 0.2f;//更新帧率的时间间隔;  
    private int m_FrameUpdate = 0;//帧数;  
    private float m_FPS = 0;//帧率

    private void Start()
    {
        m_LastUpdateShowTime = Time.realtimeSinceStartup;
    }
    
        private void Update()
    {
        m_FrameUpdate++;
        if (Time.realtimeSinceStartup - m_LastUpdateShowTime >= m_UpdateShowDeltaTime)
        {
            //FPS = 某段时间内的总帧数 / 某段时间
            m_FPS = m_FrameUpdate / (Time.realtimeSinceStartup - m_LastUpdateShowTime);
            m_FrameUpdate = 0;
            m_LastUpdateShowTime = Time.realtimeSinceStartup;
            FPS_Text.text = (1 / Time.deltaTime).ToString();
        }
    }

这段代码的含义就是用 某段时间内的总帧数 / 某段时间来计算出帧率,顺便还可以加一个更新帧率的时间间隔

上述代码也可以写成这样:

public Text FPS_Text;
    private float m_UpdateShowDeltaTime;//更新帧率的时间间隔;  
    private int m_FrameUpdate = 0;//帧数;  
    private float m_FPS = 0;//帧率
    
    private void Update()
    {
        m_FrameUpdate++;
        m_UpdateShowDeltaTime += Time.deltaTime;
        if (m_UpdateShowDeltaTime>=0.2)
        {
            m_FPS = m_FrameUpdate / m_UpdateShowDeltaTime;
            m_UpdateShowDeltaTime = 0;
            m_FrameUpdate = 0;
            FPS_Text.text = m_FPS.ToString();
        }
    }

效果如下,每0.5秒更新一下帧率显示:

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花