// Copyright (c) 2015 hugula
|
// direct https://github.com/tenvick/hugula
|
//
|
using UnityEngine;
|
using System.Collections;
|
|
public class ProfilerPanel : MonoBehaviour {
|
const float m_KBSize = 1024.0f * 1024.0f;
|
private string memory, framerate;
|
|
private float updateInterval = 0.2F;
|
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
|
|
void Start() {
|
timeleft = updateInterval;
|
//memory = Util.Get<UILabel>(gameObject, "MemoryInfo");
|
//framerate = Util.Get<UILabel>(gameObject, "FrameRate");
|
}
|
|
void Update() {
|
UpdateGameInfo();
|
}
|
|
void OnGUI() {
|
GUILayout.Label("fps:" + framerate);
|
GUILayout.Label("" + memory);
|
|
}
|
/// <summary>
|
/// 更新游戏信息
|
/// </summary>
|
void UpdateGameInfo() {
|
float totalMemory = (float)(UnityEngine.Profiling.Profiler.GetTotalAllocatedMemoryLong() / m_KBSize);
|
float totalReservedMemory = (float)(UnityEngine.Profiling.Profiler.GetTotalReservedMemoryLong() / m_KBSize);
|
float totalUnusedReservedMemory = (float)(UnityEngine.Profiling.Profiler.GetTotalUnusedReservedMemoryLong() / m_KBSize);
|
float monoHeapSize = (float)(UnityEngine.Profiling.Profiler.GetMonoHeapSizeLong() / m_KBSize);
|
float monoUsedSize = (float)(UnityEngine.Profiling.Profiler.GetMonoUsedSizeLong() / m_KBSize);
|
|
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;
|
framerate = fps.ToString();// ioo.f("fps:{0:F2}", fps);
|
|
//if (fps < 30) {
|
// framerate.color = Color.yellow;
|
//} else {
|
// if (fps < 10) {
|
// framerate.color = Color.red;
|
// } else {
|
// framerate.color = Color.green;
|
// }
|
//}
|
timeleft = updateInterval;
|
accum = 0.0F;
|
frames = 0;
|
}
|
|
memory = string.Format("TotalAllocatedMemory:{0}MB\n" + //TotalAllocatedMemory
|
"TotalReservedMemory:{1}MB\n" +
|
"TotalUnusedReservedMemory:{2}MB\n" +
|
"MonoHeapSize:{3}MB\nMonoUsedSize:{4}MB",
|
totalMemory,
|
totalReservedMemory,
|
totalUnusedReservedMemory,
|
monoHeapSize,
|
monoUsedSize);
|
}
|
}
|