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

UNITY计算fps时应忽略掉time.timescale的影响

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class AnalysisTool : MonoBehaviour
{
public Text fpsText; // 用于显示FPS的UI Text组件
public Text fps2Text; // 用于显示FPS的UI Text组件
public float updateInterval = 1f; // 更新FPS显示的间隔时间(秒)

private float accum = 0; // 累计时间
private int frames = 0; // 累计帧数
private float timeLeft; // 下一次更新FPS显示的时间
private float averageFPS = 0; // 平均FPS
private float minFPS = float.MaxValue; // 最低FPS
private float maxFPS = 0; // 最高FPS
private float deltaTime = 0.0f;

private void Awake()
{
    DontDestroyOnLoad(gameObject);
}

void Start()
{
    timeLeft = updateInterval;
}

void Update()
{
    // 计算当前帧的FPS       
    deltaTime += (Time.unscaledDeltaTime - deltaTime) * 0.1f;
    float currentFPS = 1.0f / deltaTime;     

    // 累计时间和帧数
    timeLeft -= Time.deltaTime;
    accum += currentFPS;
    frames++;

    // 如果达到更新间隔时间,计算平均FPS并更新UI
    if (timeLeft <= 0.0f)
    {
        // 计算平均FPS
        averageFPS = accum / frames;

        // 更新最低/最高FPS
        if (averageFPS < minFPS) 
            minFPS = averageFPS;

        if (averageFPS > maxFPS) 
            maxFPS = averageFPS;

        // 更新UI Text显示FPS信息
        fpsText.text = string.Format(
            "FPS: {0:0.}\nMin: {1:0.}\nMax: {2:0.}",
            averageFPS, minFPS, maxFPS
        );

        // 重置累计值和时间
        timeLeft = updateInterval;
        accum = 0;
        frames = 0;
    }
}

}

相关文章:

  • 本地部署DeepSeek摆脱服务器繁忙
  • Java的synchronized是怎么实现的?
  • 高级 Conda 使用:环境导出、共享与优化
  • 常用服务器监控软件的功能对比
  • LeetCode每日精进:206.反转链表
  • RabbitMQ使用guest登录提示:User can only log in via localhost
  • windows 通过docker 安装mysql
  • 聊聊 IP 地址和端口号的区别
  • 利用流处理实现实时生成式 AI 应用
  • 后端调试指南
  • 【运维心得】Centos7安装Redis7.4.2并处理相关告警
  • Vue 中报错 TypeError: crypto$2.getRandomValues is not a function
  • 数据结构结尾
  • 从概念到落地:DeepSeek携手蓝耘平台,解锁AI赋能生活的实践
  • STM32——HAL库开发笔记20(定时器1—时基单元)(参考来源:b站铁头山羊)
  • JAVA实战开源项目:宠物咖啡馆平台(Vue+SpringBoot) 附源码
  • Unity 获取独立显卡数量
  • FPGA实现SDI视频缩放转GTY光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供工程源码和技术支持
  • 教程 | 在PVE中部署OpenWrt旁路由教程(附主题包和镜像)
  • MySQL 处理重复数据
  • 给网站做解答是干嘛的/网络销售技巧
  • 有多少专门做兼职的网站/百度经验官网登录
  • 宜春制作网站公司哪家好/竞价被恶意点击怎么办
  • 长沙做网站微联讯点靠谱/金戈西地那非片
  • 微网站 留言板/廊坊网站建设优化
  • 网站 做实名认证/网络培训中心