Unity3D中怎么利用OnGUI实时显示FPS-创新互联
这篇文章将为大家详细讲解有关Unity3D中怎么利用OnGUI实时显示FPS,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为白银区企业提供专业的成都网站建设、网站制作,白银区网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。帧率(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)); } }
关于Unity3D中怎么利用OnGUI实时显示FPS就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章题目:Unity3D中怎么利用OnGUI实时显示FPS-创新互联
转载源于:http://hbruida.cn/article/ceococ.html