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并更新UIif (timeLeft <= 0.0f){// 计算平均FPSaverageFPS = accum / frames;// 更新最低/最高FPSif (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;}
}
}