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

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.xdnf.cn/news/16322.html

相关文章:

  • 11Linux文件压缩与链接实战技巧
  • 深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别
  • Python 数据分析(二):Matplotlib 绘图
  • 小白成长之路-部署Zabbix7(二)
  • 【GoLang#3】:数据结构(切片 | map 映射)
  • Linux726 raid0,raid1,raid5;raid 创建、保存、停止、删除
  • KubeKey安装KubeSphere、部署应用实践问题总结
  • 零基础学习性能测试第四章:从0到1学会编写性能测试报告
  • 【Spring AI】SiliconFlow-硅基流动
  • C# 位运算及应用
  • GStreamer中Element(元素)
  • 面试150 回文数
  • python---字典(dict)
  • 从压缩到加水印,如何实现一站式图片处理
  • HDMI-IN调试:双MIPI支持4K60方案
  • AMBA - CHI(5) System coherency Interface
  • 060_泛型擦除与边界限定
  • [2025CVPR:图象合成、生成方向]WF-VAE:通过小波驱动的能量流增强视频 VAE 的潜在视频扩散模型
  • 嵌入式ADC和DMA
  • kafka的部署和jmeter连接kafka
  • 守护汽车“空中升级“:基于HSM/KMS的安全OTA固件签名与验证方案
  • JavaScript 立即执行函数(IIFE)运行时行为分析笔记
  • 建筑施工场景下漏检率↓76%!陌讯多模态融合算法在工程安全监控的落地实践
  • 上证50指数分红和股指期货有什么关系?
  • Sklearn 机器学习 数值指标 entropy熵函数
  • Qt 与 WebService 交互开发
  • 配置nodejs
  • 【CTF-WEB-SQL】SQL注入基本流程-错误注入(sql-labs的Less5)(updatexml)
  • DOM元素添加技巧全解析
  • 如果在分支A上修改了内容,想要提交更新内容的话,如何与develop上的主分支的最新的代码拉齐