首页 > 其他分享 >【Unity代码片段】Unity在Unity中显示帧率

【Unity代码片段】Unity在Unity中显示帧率

时间:2023-10-16 19:35:11浏览次数:46  
标签:片段 fps 代码 deltaTime private Unity FPS string

在Unity中显示帧率
1.将脚本挂在于一个物体,
2.为FPS赋值一个UnityEngine.UI.Text text运行即可
FrameUpdata是帧数的在UI上的更新速度。

using UnityEngine;
using UnityEngine.UI;


    /// <summary>Simple FPS-Counter.</summary>
    [DisallowMultipleComponent]
    public class FPSDisplay : MonoBehaviour
    {
        #region Variables

        /// <summary>Text component to display the FPS.</summary>
        [Tooltip("Text component to display the FPS.")] public Text FPS;

        /// <summary>Update every set frame (default: 5).</summary>
        [Tooltip("Update every set frame (default: 5)."), Range(1, 300)] public int FrameUpdate = 5;

        private float deltaTime;
        private float elapsedTime;

        private float msec;
        private float fps;

        private const string wait = "<i>...calculating <b>FPS</b>...</i>";
        private const string red = "<color=#E57373><b>FPS: {0:0.}</b> ({1:0.0} ms)</color>";
        private const string orange = "<color=#FFB74D><b>FPS: {0:0.}</b> ({1:0.0} ms)</color>";
        private const string green = "<color=#81C784><b>FPS: {0:0.}</b> ({1:0.0} ms)</color>";

        #endregion


        #region MonoBehaviour methods

        private void Update()
        {
            deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
            elapsedTime += Time.deltaTime;

            if (elapsedTime > 1f)
            {
                if (Time.frameCount % FrameUpdate == 0)
                {
                    FPS.enabled = true;

                    msec = deltaTime * 1000f;
                    fps = 1f / deltaTime;

                    if (fps < 15f)
                    {
                        FPS.text = string.Format(red, fps, msec);
                    }
                    else if (fps < 29f)
                    {
                        FPS.text = string.Format(orange, fps, msec);
                    }
                    else
                    {
                        FPS.text = string.Format(green, fps, msec);
                    }
                }
            }
            else
            {
                FPS.text = wait;
            }
        }

        #endregion
    }


标签:片段,fps,代码,deltaTime,private,Unity,FPS,string
From: https://www.cnblogs.com/goodcooking/p/17768168.html

相关文章

  •  iOS代码混淆-从入门到放弃
    ​ iOS代码混淆-从入门到放弃目录1.什么是iOS代码混淆?2.iOS自动代码混淆的方法是什么?3.iOS代码混淆的作用是什么?4.怎么样才能做到更好的iOS代码混淆?总结参考资料 1.什么是iOS代码混淆?代码混淆是指将程序中的方法名、属性名等符号重命名,并对代码进行改写,使其加......
  • 用低代码打造CRM系统 实现客户个性化管理
    CRM管理思想伴随着互联网和电子商务的大潮进入中国,对企业经营管理理念产生了巨大的冲击,使中国企业逐步树立起与世界接轨的客户关系管理理念。中国CRM市场的萌芽阶段大约始于2000年,而到2010年前后,中国市场上争相涌现了一大批CRM软件厂商,国内外的CRM厂商都在为中国企业的数字化转型......
  • Hutool:一行代码搞定数据脱敏
    1.什么是数据脱敏1.1数据脱敏的定义数据脱敏:指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则......
  • client-go实战之七:准备一个工程管理后续实战的代码
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《client-go实战》系列的第八篇,主要内容是新建一个golang工程,用于管理代码,后面整个系列的代码都会保存在这个工程中工程结构简述此工程打算写一个简单......
  • 用低代码打造CRM系统 实现客户个性化管理
    CRM管理思想伴随着互联网和电子商务的大潮进入中国,对企业经营管理理念产生了巨大的冲击,使中国企业逐步树立起与世界接轨的客户关系管理理念。中国CRM市场的萌芽阶段大约始于2000年,而到2010年前后,中国市场上争相涌现了一大批CRM软件厂商,国内外的CRM厂商都在为中国企业的数字化转型贡......
  • Java大文件上传详解及实例代码
    前言:上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败。一开始以为是session过期或者文件大小受系统限制,导致的错误。查看了系统的配置文件没有看到文件大小限制,web.xml中seesiontimeout是30,我把它改成了120。但还是不行,有时候10分钟就崩了。同事说,可能是客户这里服......
  • Unity中的数学基础——贝塞尔曲线
    一:前言 一条贝塞尔曲线是由一组定义的控制点P0到Pn,n=1为线性,n=2为二次......第一个和最后一个控制点称为起点和终点,中间的控制点一般不会位于曲线上 获取两个点之间的点就是通过线性插值(Mathf.Lerp),0<=t<=1二:贝塞尔曲线公式——线性公式:给定点P0、P1,线性贝兹曲线只是一条两......
  • JimuReport积木报表 v1.6.4 稳定版本正式发布—开源免费的低代码报表
    项目介绍一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!Web版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节......
  • 几个电脑重启整人的小代码,稍微修改也可以成为表白利器
    几个电脑重启整人的小代码,稍微修改也可以成为表白利器不要恶意搞别人,这只是个针对好友的小恶作剧。第一个:让别人内存OVER(逼他重启)@echooffstartcmd%0就这3行了打开“开始→程序→附件→记事本”,把代码部分复制进去,点“另存为”,路径选“你想要放的地方”,保存类型为“所有文件”......
  • 提升协作效率:钉钉流程与低代码平台的无缝对接
    摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言钉钉作为目前很多企业都在使用的移动办公平台,提供了很多常用的OA审批功能,同时也支持自定义审批流程,极大的方便了企业的办公审批,那么对于低代......