当前位置: 首页 > news >正文

Unity 实现帧率(FPS)显示功能

一、功能介绍


本教程实现一个 FPS 显示脚本,支持 TextMeshProUGUI 组件。脚本会每秒更新一次帧率,并显示在 UI 上,便于开发和调试时观察性能变化。

二、完整代码


将以下代码保存为 FPS.cs 脚本:

using UnityEngine;
using TMPro;[RequireComponent(typeof(TextMeshProUGUI))]
public class FPS : MonoBehaviour
{private TextMeshProUGUI labelText;private float deltaTime = 0.0f;private void Awake(){labelText = GetComponent<TextMeshProUGUI>();}private void Start(){InvokeRepeating("UpdateFPS", 1.0f, 1.0f);}private void Update(){deltaTime += (Time.unscaledDeltaTime - deltaTime) * 0.1f;}private void UpdateFPS(){float fps = 1.0f / deltaTime;labelText.text = "帧率: " + Mathf.Ceil(fps).ToString();}
}

三、使用步骤


1. 导入 TextMeshPro 包

在 Unity 编辑器中,确保已导入 TextMeshPro(一般新项目自带)。

2. 创建 UI 文本对象

  • 在场景中创建一个 Canvas(画布)。
  • 在 Canvas 下创建一个 TextMeshPro - Text 对象(GameObject -> UI -> Text - TextMeshPro)。

3. 挂载脚本

  • 将上面的 FPS.cs 脚本拖到 TextMeshPro 组件所在的 GameObject 上。

4. 运行游戏

点击播放,UI 上会实时显示当前帧率。

四、效果展示


运行后,UI 上会每秒刷新一次,显示类似如下内容:

帧率: 60

 

五、原理说明


  • deltaTime 计算:通过 Time.unscaledDeltaTime 获取每帧的真实耗时,平滑处理后用于计算 FPS。
  • InvokeRepeating:每秒调用一次 UpdateFPS,减少 UI 刷新频率,避免性能浪费。
  • TextMeshProUGUI:高质量文本渲染,适合现代 UI 需求。

六、常见问题


  • 未显示帧率:请确认脚本已挂载到 TextMeshProUGUI 组件所在的对象上。
  • 报错找不到 TextMeshProUGUI:请确保已导入 TextMeshPro 包。

 

http://www.dtcms.com/a/299868.html

相关文章:

  • Paimon Consumer机制解析
  • 守护汽车“空中升级“:基于HSM/KMS的安全OTA固件签名与验证方案
  • 通过redis_exporter监控redis cluster
  • 1. Qt多线程开发
  • JavaEE初阶第十一期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(九)
  • 第10篇:实战验收篇
  • 无需云服务器的内网穿透方案 -- cloudflare tunnel
  • 特产|基于SSM+vue的南阳特产销售平台(源码+数据库+文档)
  • 如何实现打印功能
  • 大话数据结构之 < 栈>(C语言)
  • Java中mybatis 无参构造器?你会吗
  • Spring AI 项目实战(二十):基于Spring Boot + AI + DeepSeek的智能环境监测与分析平台(附完整源码)
  • 修改site-packages位置与pip配置
  • Kubernetes 与 Docker的爱恨情仇
  • 面试实战,问题十三,Redis在Java项目中的作用及使用场景详解,怎么回答
  • 面试问题总结——关于OpenCV(二)
  • 【电赛学习笔记】MaxiCAM 的OCR图片文字识别
  • 力扣404.左叶子之和
  • jxORM--查询数据
  • ART配对软件使用
  • Macast配置
  • ThreadLocal--ThreadLocal介绍
  • 7.26 cpu
  • 单片机ADC机理层面详细分析(一)
  • SSE (Server-Sent Events) 服务出现连接卡在 pending 状态的原因
  • 嵌入式软硬件开发入门工具推荐
  • `read`系统调用示例
  • java每日精进 7.26【流程设计5.0(中间事件+结束事件)】
  • 检索召回率优化探究一:基于 LangChain 0.3集成 Milvus 2.5向量数据库构建的智能问答系统
  • 全球化2.0 | 云轴科技ZStack亮相阿里云印尼国有企业CXO专家活动