【100个 Unity小知识点】☀️ | Unity中显示运行时游戏帧率的方法

本文介绍了Unity作为实时3D创作平台的基础知识,并详细讲解了如何在Unity中查看游戏运行时的帧率。通过Game视图的Stats按钮、代码实现以及自定义帧率更新方法,开发者可以轻松监测游戏的流畅度。高帧率对于游戏体验至关重要,而Unity提供了多种方式帮助开发者优化性能。
摘要由CSDN通过智能技术生成

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

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

Unity小知识点学习

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秒更新一下帧率显示
请添加图片描述


请添加图片描述

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆敲代码的小Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值