#yyds干货盘点#100个 Unity小知识点☀️ | Unity中显示运行时游戏帧率的方法

Posted 呆呆敲代码的小Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点#100个 Unity小知识点☀️ | Unity中显示运行时游戏帧率的方法相关的知识,希望对你有一定的参考价值。

<font color=#ff6984 size=5> Unity </font>小科普

老规矩,先介绍一下<font color=#ff6984 size=4> Unity </font>的科普小知识:

  • <font color=#ff6984 size=4>Unity</font>是 实时3D互动内容创作和运营平台 。
  • 包括<font color=#green size=4>游戏开发</font>、<font color=#green size=4>美术</font>、<font color=#green size=4>建筑</font>、<font color=#green size=4>汽车设计</font>、<font color=#green size=4>影视</font>在内的所有创作者,借助<font color=#ff6984 size=4> Unity </font>将创意变成现实。
  • <font color=#ff6e84 size=4>Unity</font> 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括<font color=#green size=4>手机</font>、<font color=#green size=4>平板电脑</font>、<font color=#green size=4>PC</font>、<font color=#green size=4>游戏主机</font>、<font color=#green size=4>增强现实</font>和<font color=#green size=4>虚拟现实设备。 </font>
  • 也可以简单把 <font color=#ff6e84 size=4>Unity</font> 理解为一个<font color=#ee82ee size=4>游戏引擎</font>,可以用来专业制作<font color=#ee0000 size=4>游戏</font>!

<font color=#ff6984 size=5> Unity</font>小知识点学习

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秒更新一下帧率显示


以上是关于#yyds干货盘点#100个 Unity小知识点☀️ | Unity中显示运行时游戏帧率的方法的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#100个 Unity小知识点☀️ | Unity中显示运行时游戏帧率的方法

#yyds干货盘点# 100个 Unity小知识点☀️ | Unity中使用代码查询Draw callTris和Verts等信息

#yyds干货盘点#Unity3D 灵巧小知识点☀️ | Unity控制台 输出打印不同颜色的字体

#yyds干货盘点#通过猜数游戏来学习RUST中最基础的知识

#yyds干货盘点#parseInt怪异行为

#yyds干货盘点# LeetCode 热题 HOT 100:合并K个升序链表