推荐阅读
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前言
很简单也很使用的小技巧,就是在Unity3D中实现FPS数值。
实现的思路就是,在Update里面,使用+=Time.deltaTime,得到一帧的秒数。
然后,每过一秒,去除以固定帧率30帧,得到这一秒的FPS值。
二、正文
新建脚本,编辑代码,代码参考:
csharp
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class FpsDisplay : MonoBehaviour
{
[SerializeField]
TextMeshProUGUI text = null;
[SerializeField]
float updateRate = 30f;
float deltaTime;
int fps;
float lastUpdateTime;
Dictionary<int, string> pool = new Dictionary<int, string>();
private void Awake()
{
DontDestroyOnLoad(this);
}
void Update()
{
if (Time.timeScale.Equals(0f))
{
return;
}
deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
fps = Mathf.CeilToInt(1f / deltaTime);
var time = Time.time;
if (time - lastUpdateTime > 1f / updateRate)
{
lastUpdateTime = time;
if (!pool.ContainsKey(fps))
{
pool.Add(fps, fps.ToString());
}
text.text = pool[fps];
}
}
}
新建个空对象,然后在空对象上,新建TextMeshPro放到角落里:
把组件都拖过去:
运行结果:
三、后记
如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。
你的点赞就是对博主的支持,有问题记得留言:
博主主页有联系方式。
博主还有跟多宝藏文章等待你的发掘哦:
专栏 | 方向 | 简介 |
---|---|---|
Unity3D开发小游戏 | 小游戏开发教程 | 分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。 |
Unity3D从入门到进阶 | 入门 | 从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。 |
Unity3D之UGUI | UGUI | Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。 |
Unity3D之读取数据 | 文件读取 | 使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。 |
Unity3D之数据集合 | 数据集合 | 数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。 |
Unity3D之VR/AR(虚拟仿真)开发 | 虚拟仿真 | 总结博主工作常见的虚拟仿真需求进行案例讲解。 |
Unity3D之插件 | 插件 | 主要分享在Unity开发中用到的一些插件使用方法,插件介绍等 |
Unity3D之日常开发 | 日常记录 | 主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等 |
Unity3D之日常BUG | 日常记录 | 记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。 |