FPS
来源:互联网 发布:淘宝第三方 编辑:程序博客网 时间:2024/04/25 18:48
using System;
public class Class1:MonoBehaviour
{
private const long updateInternalTicks = 2000 * System.TimeSpan.TicksPerMilliseconds;
private long lastTicks;
private int frames = 0;
private static int maxFpsRecords = 5;
private static int curFpsRecordIndex = 0;
private static List<int> fpsRecords = new List<int>(maxFpsRecords);
public static int curFps = 30;
public GameObject Root_UGUI;
public Text Text_FPS;
public Text Text_Version;
public Text Text_Quality;
#if DISPLAY_FPS
EGameQuality mCurrentQuality = EGameQuality.eMidQuality;
#endif
void Start()
{
lastTicks = System.DateTime.Now.Ticks;
#if DISPLAY_FPS
Root_UGUI.SetActive(true);
Text_Version.text = ApplicationMain.RunTimeAppVersion;
SetQuality();
#else
Root_UGUI.SetActive(false);
#endif
}
void Update()
{
++frames;
long currTicks = System.DateTime.Now.Ticks;
if(currTicks > lastTicks + updateIntervalTicks)
{
curFps = (int)(frames * System.TimeSpan.TicksPerSecond / (currTicks - lastTicks));
RecordFps(curFps);
frames = 0;
lastTicks = currTicks;
}
#if DISPLAY_FPS
if(mCurrentQuality != GameQualityManager.Instance.CurrentQuality)
{
mCurrentQuality = GameQualityManager.Instance.CurrentQuality
}
SetQuality();
#endif
}
#if DISPLAY_FPS
void SetQuality()
{
switch(mCurrentQuality)
{
case EGameQuality.eHighQuality:
Text_Quality.text = "H";
break;
case EGameQuality.eMidQuality:
Text_Quality.text = "M";
break;
case EGameQuality.eLowQuality:
Text_Quality.text = "L";
break;
}
}
#endif
private void RecordFps(int val)
{
if(fpsRecords.Count > curFpsRecordIndex)
{
fpsRecords[curFpsRecordIndex] = val;
}
else
{
fpsRecords.Add(val);
}
curFpsRecordIndex = (curFpsRecordIndex++) % maxFpsRecords;
#if DISPLAY_FPS
Text_FPS.text = "fps:"+curFps;
#endif
}
public static int GetAverageFps() //获取一段时间的平均fps
{
if(fpsRecords.Count > 0)
{
int totalFps = 0;
for(int i=0; i<fpsRecords.Count; ++i)
{
totalFps += fpsRecords[i];
}
return totalFps / fpsRecords.Count;
}
return curFps;
}
public class Class1:MonoBehaviour
{
private const long updateInternalTicks = 2000 * System.TimeSpan.TicksPerMilliseconds;
private long lastTicks;
private int frames = 0;
private static int maxFpsRecords = 5;
private static int curFpsRecordIndex = 0;
private static List<int> fpsRecords = new List<int>(maxFpsRecords);
public static int curFps = 30;
public GameObject Root_UGUI;
public Text Text_FPS;
public Text Text_Version;
public Text Text_Quality;
#if DISPLAY_FPS
EGameQuality mCurrentQuality = EGameQuality.eMidQuality;
#endif
void Start()
{
lastTicks = System.DateTime.Now.Ticks;
#if DISPLAY_FPS
Root_UGUI.SetActive(true);
Text_Version.text = ApplicationMain.RunTimeAppVersion;
SetQuality();
#else
Root_UGUI.SetActive(false);
#endif
}
void Update()
{
++frames;
long currTicks = System.DateTime.Now.Ticks;
if(currTicks > lastTicks + updateIntervalTicks)
{
curFps = (int)(frames * System.TimeSpan.TicksPerSecond / (currTicks - lastTicks));
RecordFps(curFps);
frames = 0;
lastTicks = currTicks;
}
#if DISPLAY_FPS
if(mCurrentQuality != GameQualityManager.Instance.CurrentQuality)
{
mCurrentQuality = GameQualityManager.Instance.CurrentQuality
}
SetQuality();
#endif
}
#if DISPLAY_FPS
void SetQuality()
{
switch(mCurrentQuality)
{
case EGameQuality.eHighQuality:
Text_Quality.text = "H";
break;
case EGameQuality.eMidQuality:
Text_Quality.text = "M";
break;
case EGameQuality.eLowQuality:
Text_Quality.text = "L";
break;
}
}
#endif
private void RecordFps(int val)
{
if(fpsRecords.Count > curFpsRecordIndex)
{
fpsRecords[curFpsRecordIndex] = val;
}
else
{
fpsRecords.Add(val);
}
curFpsRecordIndex = (curFpsRecordIndex++) % maxFpsRecords;
#if DISPLAY_FPS
Text_FPS.text = "fps:"+curFps;
#endif
}
public static int GetAverageFps() //获取一段时间的平均fps
{
if(fpsRecords.Count > 0)
{
int totalFps = 0;
for(int i=0; i<fpsRecords.Count; ++i)
{
totalFps += fpsRecords[i];
}
return totalFps / fpsRecords.Count;
}
return curFps;
}
阅读全文
0 0
- FPS
- FPS
- FPS
- FPS
- FPS
- fps
- FPS
- FPS
- FPS counter
- 精确FPS
- FPS 是什么意思
- FPS游戏
- FPS Constructor
- 精确FPS
- FPS优化
- FPS含义
- 名词解释---fps
- FPS相机
- Android简单实现仿微信选择图片以及拍照(PhotoPicker)
- session和cookie的区别
- HorizontalListView
- 给手机号发送验证码设置密码
- 关于中断
- FPS
- 模块化开发
- 牛客网三道编程题(五) 之华为机试在线训练(四)进制转换、删除重复出现的数字、句子逆序
- POJ 2778 DNA Sequence (AC自动机+矩阵快速幂)
- 基于python、dlib和opencv的200行代码实现的换脸
- PreparedStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)使用
- Android中使用Handler造成内存泄露的分析和解决
- CRLF注入漏洞
- Hibernate五大核心(类/接口)简述