当前位置: 首页 > 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.lryc.cn/news/600927.html

相关文章:

  • 手写PPO_clip(FrozenLake环境)
  • 智慧水库管理系统中标签工厂的建立方案
  • ARM SMMUv3控制器注册过程分析(八)
  • ISIS分片扩展实验案例
  • 【Android】内容提供器
  • Kubernetes 与 Docker的爱恨情仇
  • 1.安装anaconda详细步骤(含安装截图)
  • C++20 协程
  • ​机器学习从入门到实践:算法、特征工程与模型评估详解
  • 是德科技 | AI上车后,这条“高速公路”如何畅通?
  • 聚类-一种无监督分类算法
  • 聚类里面的一些相关概念介绍阐述
  • Digit Queries
  • OpenFeign-远程调用
  • 数据结构 二叉树(2)---二叉树的实现
  • excel删除重复项场景
  • HarmonyOS中的PX、 VP、 FP 、LPX、Percentage、Resource 详细区别是什么
  • 商汤InternLM发布最先进的开源多模态推理模型——Intern-S1
  • CUDA杂记--FP16与FP32用途
  • P2392 kkksc03考前临时抱佛脚
  • Linux——线程互斥
  • 【RHCSA 问答题】第 13 章 访问 Linux 文件系统
  • PYTHON从入门到实践-16数据视图化展示
  • 卫星通信终端天线对星之:参考星对星
  • DOM元素添加技巧全解析
  • 单片机CPU内部的定时器——滴答定时器
  • Linux DNS 服务器正反向解析
  • Mybatis学习之配置文件(三)
  • Linux随记(二十一)
  • 变频器实习DAY15