一、功能介绍


本教程实现一个 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.pswp.cn/news/916296.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916296.shtml
英文地址,请注明出处:http://en.pswp.cn/news/916296.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【星野AI】minimax非活动时间充值优惠漏洞

点开发现有活动即将开启。把手机时间修改为20250729&#xff0c;或者其它活动内时间。发现活动的充值接口未进行时间校验。叠加新人首充优惠&#xff0c;充值六元&#xff0c;获得1800钻。在非活动时间获取了优惠。

Python 程序设计讲义(22):循环结构——for 循环

Python 程序设计讲义&#xff08;22&#xff09;&#xff1a;循环结构——for 循环 目录Python 程序设计讲义&#xff08;22&#xff09;&#xff1a;循环结构——for 循环一、for 循环的语法二、for 循环执行的流程三、for 循环应用举例while 循环的循环次数往往是不确定的&am…

自动驾驶---视觉语言模型(VLM)引导的模型预测控制器(MPC)

1 背景之前大家普遍认为的端到端就是传感器输入&#xff0c;控制输出&#xff0c;这也确实是真正的端到端&#xff0c;但目前车企走的更多的是轨迹生成。自动驾驶端到端控制瓶颈主要有以下两点&#xff1a;可解释性缺失&#xff1a;传统端到端模型&#xff08;如纯VLM控制器&am…

最优估计准则与方法(5)加权最小二乘估计(WLS)_学习笔记

前言 最优估计理论中研究的最小二乘估计&#xff08;LS&#xff09;为线性最小二乘估计&#xff08;LLS&#xff09;&#xff0c;包括古典最小二乘估计&#xff08;CLS&#xff09;[1]、加权最小二乘估计&#xff08;WLS&#xff09;和递推最小二乘估计&#xff08;RLS&#x…

Linux——线程互斥

文章目录一、有关概念原子性错误认知澄清加锁二、锁的相关函数全局锁局部锁初始化销毁加锁解锁三、锁相关如何看待锁一个线程在执行临界区的代码时&#xff0c;可以被切换吗&#xff1f;锁是本身也是临界资源&#xff0c;它如何做到保护自己&#xff1f;&#xff08;锁的实现&a…

扣子(Coze)宣布开源两大核心项目——Coze Studio(扣子开发平台)和Coze Loop(扣子罗盘),附安装步骤

2025年7月26日,字节跳动旗下AI开发平台“扣子(Coze)”宣布开源两大核心项目——Coze Studio(扣子开发平台)和Coze Loop(扣子罗盘),采用Apache 2.0协议,支持免费商用及本地化部署。 开源内容 Coze Studio:提供可视化AI智能体开发工具,支持零代码/低代码拖拽式工作流编…

InfluxDB Flux 查询协议实战应用(二)

四、实战案例解析4.1 服务器性能监控数据查询在服务器性能监控场景中&#xff0c;InfluxDB 和 Flux 查询协议能够发挥重要作用&#xff0c;帮助运维人员实时了解服务器的运行状态&#xff0c;及时发现性能问题。假设我们的服务器性能监控数据存储在名为server-monitoring的存储…

二层隧道协议(PPP、PPTP、L2TP)

PPP —— 点对点链路上的“链路层会话层”协议&#xff0c;解决拨号认证、IP 分配和多协议封装。PPTP —— 在 IP 网络里开一条“PPP-over-GRE”隧道&#xff0c;把 PPP 封装进公共网络&#xff0c;速度快但已不安全。L2TP —— 在 IP/UDP 里再开一条“PPP-over-UDP”隧道&…

openmv特征点检测

AGAST 角点检测器和 FAST 角点检测器&#xff1a; 两者都是计算机视觉中快速检测图像角点的算法&#xff0c;核心目的是高效找到图像中 "有辨识度的点"&#xff0c;但细节略有不同&#xff1a; &#xff08;1&#xff09;FAST 角点检测器 • 特点&#xff1a;速度极快…

基于深度学习的CT图像3D重建技术研究

基于深度学习的CT图像3D重建技术研究 摘要 本文详细探讨了使用深度学习技术进行CT(计算机断层扫描)图像3D重建的全过程。我们从CT成像基本原理出发,系统介绍了数据预处理、深度学习模型构建、训练优化以及三维可视化等关键技术环节。研究采用了先进的深度学习架构如3D U-Net…

JVM相关面试八股

什么是双亲委派模型&#xff1f; 如果一个类加载器在接到加载类的请求时&#xff0c;它首先不会自己尝试去加载这个类&#xff0c;而是把这个请求任务委托给父类加载器去完成&#xff0c;依次递归&#xff0c;如果父类加载器可以完成类加载任务&#xff0c;就返回成功&#xff…

Javaweb————HTTP消息体拆分讲解

❤️❤️❤️一.HTTP请求消息结构 &#xff08;1&#xff09;请求行 &#x1f499; 请求方法 &#x1f499;URL地址 &#x1f499;协议名 &#xff08;2&#xff09;请求头 报文头包含若千个属性格式为“属性名:属性值”, 服务端据此获取客户端的基本信息 &#xff08;3&…

GitHub的免费账户的存储空间有多少?

GitHub的免费账户在存储空间方面的具体限制如下: 一、普通仓库(非LFS)存储限制 公共仓库 总存储:无明确总容量限制,但建议单个仓库不超过1GB以确保性能。若仓库过大(如超过5GB),可能会收到GitHub的优化提示邮件。 文件大小:单个文件最大100MB,超过100MB的文件会被直…

Java学习|黑马笔记|Day23】网络编程、反射、动态代理

【DAY23】 文章目录【DAY23】一.网络编程1&#xff09;三要素1.1&#xff09;IPInetAddress类的使用1.2&#xff09;端口号1.3&#xff09;协议2.1&#xff09;UDP协议发送数据2.2&#xff09;UDP协议接收数据2.3&#xff09;UDP的三种通信方式3.1&#xff09;TCP协议的发送和接…

【Linux】从普通进程到守护进程:系统服务的诞生之路

当你在深夜关闭SSH终端&#xff0c;为何Web服务器仍在默默响应请求&#xff1f;这背后是守护进程的魔法在守护着系统服务的不灭之火。一、守护进程的六大核心特征守护进程&#xff08;Daemon&#xff09;是Linux系统的无名英雄&#xff0c;它们舍弃了普通进程的"世俗享受&…

k8s常用基础命令总结

----------------------k8s常用基础命令--------------------------------- 获取 Pod 信息 # 1.获取k8s的命名空间 kubectl get namespaces ​1)获取 Pod 列表及简要信息: kubectl get pods 2)以 YAML 格式获取 Pod 详细信息: kubectl get pod -o yaml 3)​获取特定命名空间中…

Java高级之基于Java Attach与Byte-Buddy实现SQL语句增强

目录 一 Agent 模块 1 HookAgent.java 2 FormatAdvice.java 3 配置文件 二 Attacher 模块 1 AttachMain.java 三 测试模块 1 DruidTest.java 四 验证步骤 五 原理解析 笔者目标写一款数据分析中间件&#xff0c;用来增强当前主流开源项目&#xff0c;前几天写了一票用…

2025第五届生物发酵营养源高峰论坛

一、会议时间会议时间:2025年8月8日二、会议地点上海新国际博览中心–W4馆现场2号会议室三、组织单位主办单位:中国生物发酵产业协会承办单位:浙江工业大学乐斯福集团Procelys 乐斯福发酵营养元参会福利&#xff0c;助力高效交流为提升参会体验&#xff0c;组委会特别推出多项福…

Kubernetes 配置管理

这里写目录标题什么是 ConfigMap创建 ConfigMap基于目录创建 ConfigMap创建 conf 目录&#xff0c;里面放置两个文件基于目录下的所有文件创建 ConfigMap查看当前创建的 ConfigMap基于文件创建 ConfigMap创建测试文件 game-cfg基于单个文件创建 ConfigMap查看当前创建的 Config…

ESP32+MicroPython:用Python玩转物联网开发

什么是ESP32&#xff1f; ESP32作为当下最热门的物联网开发板&#xff0c;常被比作"嵌入式世界的瑞士军刀"。但很多初学者会混淆芯片、模组和开发板的概念&#xff0c;其实它们的关系很简单&#xff1a; 芯片(Soc)&#xff1a;核心处理器&#xff0c;如ESP32-D0WD模…