目录

Unity中一个简单GUI的显示FPS帧率小工具

UGUI的TMP显示帧率


Unity中一个简单GUI的显示FPS帧率小工具

代码如下:

using UnityEngine;public class FPS : MonoBehaviour
{private Rect labelRect = new Rect(30, 30, 100, 30);private float _Interval = 0.5f;private int _FrameCount = 0;private float _TimeCount = 0;private float _FrameRate = 0;void Update(){_FrameCount++;_TimeCount += Time.unscaledDeltaTime;if (_TimeCount >= _Interval){_FrameRate = _FrameCount / _TimeCount;_FrameCount = 0;_TimeCount -= _Interval;}}void OnGUI(){GUI.Label(labelRect, string.Format("FPS:{0:F1}", _FrameRate));}
}

运行效果如下:

UGUI的TMP显示帧率

源码:

public class TMP_FrameRateCounter : MonoBehaviour{[SerializeField]private float UpdateInterval = 0.5f;private float m_LastInterval = 0;private int m_Frames = 0;private enum FpsCounterAnchorPositions { TopLeft, BottomLeft, TopRight, BottomRight };[SerializeField]private FpsCounterAnchorPositions AnchorPosition = FpsCounterAnchorPositions.TopRight;private string htmlColorTag;private const string fpsLabel = "{0:2}</color> <#8080ff>FPS \n<#FF8000>{1:2} <#8080ff>MS";private TextMeshPro m_TextMeshPro;private Transform m_frameCounter_transform;private Camera m_camera;private FpsCounterAnchorPositions last_AnchorPosition;void Awake(){if (!enabled)return;m_camera = Camera.main;Application.targetFrameRate = 9999;GameObject frameCounter = new GameObject("Frame Counter");m_TextMeshPro = frameCounter.AddComponent<TextMeshPro>();m_TextMeshPro.font = Resources.Load<TMP_FontAsset>("Fonts & Materials/LiberationSans SDF");m_TextMeshPro.fontSharedMaterial = Resources.Load<Material>("Fonts & Materials/LiberationSans SDF - Overlay");m_frameCounter_transform = frameCounter.transform;m_frameCounter_transform.SetParent(m_camera.transform);m_frameCounter_transform.localRotation = Quaternion.identity;m_TextMeshPro.enableWordWrapping = false;m_TextMeshPro.fontSize = 34;Set_FrameCounter_Position(AnchorPosition);last_AnchorPosition = AnchorPosition;}void Start(){m_LastInterval = Time.realtimeSinceStartup;m_Frames = 0;}void Update(){if (AnchorPosition != last_AnchorPosition)Set_FrameCounter_Position(AnchorPosition);last_AnchorPosition = AnchorPosition;m_Frames += 1;float timeNow = Time.realtimeSinceStartup;if (timeNow > m_LastInterval + UpdateInterval){float fps = m_Frames / (timeNow - m_LastInterval);float ms = 1000.0f / Mathf.Max(fps, 0.00001f);if (fps < 30)htmlColorTag = "<color=yellow>";else if (fps < 10)htmlColorTag = "<color=red>";elsehtmlColorTag = "<color=green>";m_TextMeshPro.SetText(htmlColorTag + fpsLabel, fps, ms);m_Frames = 0;m_LastInterval = timeNow;}}void Set_FrameCounter_Position(FpsCounterAnchorPositions anchor_position){m_TextMeshPro.margin = new Vector4(1f, 1f, 1f, 1f);switch (anchor_position){case FpsCounterAnchorPositions.TopLeft:m_TextMeshPro.alignment = TextAlignmentOptions.TopLeft;m_TextMeshPro.rectTransform.pivot = new Vector2(0, 1);m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(0, 1, 100.0f));break;case FpsCounterAnchorPositions.BottomLeft:m_TextMeshPro.alignment = TextAlignmentOptions.BottomLeft;m_TextMeshPro.rectTransform.pivot = new Vector2(0, 0);m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(0, 0, 100.0f));break;case FpsCounterAnchorPositions.TopRight:m_TextMeshPro.alignment = TextAlignmentOptions.TopRight;m_TextMeshPro.rectTransform.pivot = new Vector2(1, 1);m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(1, 1, 100.0f));break;case FpsCounterAnchorPositions.BottomRight:m_TextMeshPro.alignment = TextAlignmentOptions.BottomRight;m_TextMeshPro.rectTransform.pivot = new Vector2(1, 0);m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(1, 0, 100.0f));break;}}}

字体材质文件下载https://download.csdn.net/download/hack_yin/85539953​​​​​​​

Unity中一个简单的显示FPS帧率小工具相关推荐

  1. [RK3288][Android7.1]在Root用户下的一个简单更改开机动画的小工具

    [RK3288][Android7.1]在Root用户下的一个简单更改开机动画的小工具 Platform: Rockchip OS: Android 7.1.2 Kernel: 4.4 需求: 在使用 ...

  2. maya中一个简单的渲染层开关管理工具

    前几天,看youtube视频时,看到这个案例,分享下.简单说,就是一个渲染层开关管理工具,代码几乎就一句话,意义不大,主要就当复习写windows窗口了.maya2018如果没有Render层的话,在 ...

  3. Web简单快捷的指纹识别小工具_在线指纹识别平台设计

    Web 指纹识别 本文通过分析 Web 指纹的检测对象.检测方法.检测原理及常用工具,设计了一个简易的指纹搜集脚本来协助发现新指纹,并提取了多个开源指纹识别工具的规则库并进行了规则重组,开发了一个简单 ...

  4. unity编写一个简单的小游戏

    unity编写一个简单的小游戏 简易fly bird的制作 关于flybird 场景的搭建和素材的导入 使用素材搭建game和scene 制作柱体 bird的script column的sprite ...

  5. 在Unity中实现简单的动画转场

    在Unity中实现简单的动画转场 1 思路 1.1 原教程的思路 1.2 我的思路 2 制作转场动画 3 代码 3.1 Transition 3.2 SceneLoader 3.3 测试 4 成品 看 ...

  6. 初探CardBoard:(1)在Unity中实现简单VR场景

    初探CardBoard:(1)在Unity中实现简单VR场景 为何使用CardBoard 价格低廉 兼容性 前期准备 开始工程 一.简单的环境布置 二.导入SDK 三.SDK基础组件说明 四.将之前的 ...

  7. 驱动开发之六 --- 一个简单的显示驱动之一 [译文]

    这个系列的文章在网上到处都是 这里也不清楚谁才是原文作者 我这里做个整理,标注一下希望大家能看的更加舒服一点 目录 (一)驱动开发一个简单的显示驱动 (二)驱动开发一个简单的显示驱动 (三)驱动开发一 ...

  8. 基于unity创建一个简单的VR demo

    创建一个VR项目 我们将使用Unity创建一个简单的VR项目demo,其效果是在VR头盔中观察一个立方体. Step 1 打开Unity,创建一个新的空项目. Step 2 在Unity的菜单中选择F ...

  9. 工作中一个简单python数据处理-统计csv文件并画柱状图

    工作中一个简单python数据处理 工作中需要parsing一些短信数据,会有接口直接将数据导入到csv文件,但是报告时需要统计csv文件中数据频率,所以写了一个python脚本做一些简单处理. 流程 ...

  10. Unity中如何在一个画面同时显示多个摄像机的内容

    Unity中如何在一个画面同时显示多个摄像机的内容 1.调整摄像机Viewport Rect.Depth等属性 2.使用RawImage和RenderTexture在UI界面上投影其他相机拍摄的内容 ...

最新文章

  1. NodeJS加MongoDB应用入门
  2. 嵌入式linux笔记,嵌入式linux学习笔记(一)----嵌入式操作系统
  3. html如何设置图片循环旋转动画效果,如何使用css3实现图片自动旋转的特效(完整代码)...
  4. SAP 电商云 Spartacus UI 回归测试 wish-list.core-e2e-spec.ts
  5. 计算机辅助技术课设,《计算机辅助设计技术》课程标准-20210311103339.doc-原创力文档...
  6. ASP.NET技巧:字符自动截取问题
  7. java实验 输入输出_实验十三 Java输入输出(一)
  8. 奇安信代码安全实验室招贤纳士
  9. numpy——numpy.ravel(a,order=‘C)
  10. 基于DSP的交通灯设计
  11. qrcode将生成的二维码转成img格式
  12. seo伪原创文章优化(怎么找可以做伪原创的文章)
  13. VLOG短视频必备!24个Ins潮流插画风视频短视频模板
  14. 公众号排版|点击图片播放音乐你不会还不会吧
  15. h3c imc-dig 7 linux,H3C iMC iLP安装指导-7.0-5PW100
  16. 工作经验|lambada处理集合的常用10种实战骚操作,我都记录下来了
  17. 字母排序 字符串跟字符串比较大小 字符串跟数字比较大小
  18. C#之:线程同步 Monitor类
  19. unity 卡牌聚拢算法
  20. QQ号码很危险 后果很严重

热门文章

  1. 121道分布式面试题和答案
  2. 三菱FX3U-1PG模块与台达A2伺服连接用法
  3. Cfs三层靶机内网渗透模拟
  4. 求oracle学习资料(最好是视频)
  5. unity 代码边缘发光_unity游戏物体边缘发光高亮突出显示系统插件Highlighting System 5.0...
  6. 51单片机直流电机调速
  7. HTML+CSS+JS 实现全屏下雪动画背景用户登录注册表单
  8. 操作系统原理好书推荐
  9. 建模笔记1:建立数学模型
  10. DEM数据和影像数据下载汇总