国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

Unity3D基于OnGUI實時顯示FPS

2020-01-23 20:46:49
字體:
來源:轉載
供稿:網友

幀率(Frame rate)是用于測量顯示幀數的量度。所謂的測量單位為每秒顯示幀數(Frames per Second,簡稱:FPS)或“赫茲”(Hz)。此詞多用于影視制作和電子游戲。由于人類眼睛的特殊生理結構,如果所看畫面之幀率高于16的時候,就會認為是連貫的,此現象稱之為視覺暫留。

每秒的幀數(fps)或者說幀率表示圖形處理器處理場時每秒鐘能夠更新的次數。高的幀率可以得到更流暢、更逼真的動畫。一般來說30fps就是可以接受的,但是將性能提升至60fps則可以明顯提升交互感和逼真感,但是一般來說超過75fps一般就不容易察覺到有明顯的流暢度提升了。如果幀率超過屏幕刷新率只會浪費圖形處理的能力,因為監視器不能以這么快的速度更新,這樣超過刷新率的幀率就浪費掉了。

以下是在Unity3D中顯示fps的代碼。

using UnityEngine;using System.Collections; [AddComponentMenu( "Utilities/HUDFPS")]public class FPSCounter : MonoBehaviour{ //fps 顯示的初始位置和大小 public Rect startRect=new Rect(512, 10f, 75f, 50f ); //fps 過低時是否改變UI顏色 public bool updateColor = true; //fps UI 是否允許拖動  public bool allowDrag = true;  //fps 更新的頻率 public float frequency = 0.5F; //fps 顯示的精度 public int nbDecimal = 1;  //一定時間內的fps數量 private float accum = 0f; //fps計算的時間 private int frames = 0; //GUI 依賴fps的顏色 fps<10 紅色 fps<30 黃色 fps>=30 綠色 private Color color = Color.white; //fps  private string sFPS = ""; //GUI 的樣式 private GUIStyle style;  void Start() { StartCoroutine(FPS()); }  void Update() { accum += Time.timeScale/ Time.deltaTime; ++frames; }  IEnumerator FPS() { while( true ) { //更新fps float fps = accum/frames; sFPS = fps.ToString( "f" + Mathf.Clamp( nbDecimal, 0, 10 ) );  //更新顏色 color = (fps >= 30) ? Color.green : ((fps > 10) ? Color.yellow : Color.red);  accum = 0.0F; frames = 0;  yield return new WaitForSeconds( frequency ); } }  void OnGUI() { if( style == null ){ style = new GUIStyle( GUI.skin.label ); style.normal.textColor = Color.white; style.alignment = TextAnchor.MiddleCenter; }  GUI.color = updateColor ? color : Color.white; startRect = GUI.Window(0, startRect, DoMyWindow, ""); }  void DoMyWindow(int windowID) { GUI.Label( new Rect(0, 0, startRect.width, startRect.height), sFPS + " FPS", style ); if( allowDrag ) GUI.DragWindow(new Rect(0, 0, Screen.width, Screen.height)); }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永寿县| 池州市| 鹰潭市| 宁德市| 新丰县| 湄潭县| 龙门县| 郓城县| 商都县| 渑池县| 都匀市| 黄浦区| 澄迈县| 大英县| 门源| 民乐县| 东宁县| 樟树市| 库伦旗| 玉树县| 中西区| 都匀市| 梨树县| 尉犁县| 从化市| 泾阳县| 鄂托克前旗| 镇平县| 那曲县| 鄂尔多斯市| 屏山县| 峨边| 安多县| 通海县| 荔波县| 霍林郭勒市| 佛学| 怀宁县| 南岸区| 平顺县| 富锦市|