- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
- 纳金币
- 53488
- 精华
- 316
|
- using UnityEngine;
- using System.Collections;
-
- public class HUDFps : MonoBehaviour
- {
-
- // Attach this to a GUIText to make a frames/second indicator.
- //
- // It calculates frames/second over each updateInterval,
- // so the display does not keep changing wildly.
- //
- // It is also fairly accurate at very low FPS counts (<10).
- // We do this not by simply counting frames per interval, but
- // by accumulating FPS for each frame. This way we end up with
- // correct overall FPS even if the interval renders something like
- // 5.5 frames.
-
- public float updateInterval = 0.5F;
-
- private float accum = 0; // FPS accumulated over the interval
- private int frames = 0; // Frames drawn over the interval
- private float timeleft; // Left time for current interval
- public UnityWebView meshRender;
-
- void Start()
- {
- if (!GetComponent<GUIText>())
- {
- Debug.Log("UtilityFramesPerSecond needs a GUIText component!");
- enabled = false;
- return;
- }
- timeleft = updateInterval;
- }
-
- void Update()
- {
- timeleft -= Time.deltaTime;
- accum += Time.timeScale / Time.deltaTime;
- ++frames;
-
- // Interval ended - update GUI text and start new interval
- if (timeleft <= 0.0)
- {
- // display two fractional digits (f2 format)
- float fps = accum / frames;
- string format = System.String.Format("{0:F2} FPS", fps);
- GetComponent<GUIText>().text = format;
-
- if (fps < 30)
- GetComponent<GUIText>().material.color = Color.yellow;
- else
- if (fps < 10)
- GetComponent<GUIText>().material.color = Color.red;
- else
- GetComponent<GUIText>().material.color = Color.green;
-
- meshRender.setFPS(fps);
- // DebugConsole.Log(format,level);
- timeleft = updateInterval;
- accum = 0.0F;
- frames = 0;
- }
- }
- }
复制代码 |
|