1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- @script ExecuteInEditMode
- private var gui : GUIText;
- private var updateInterval = 1.0;
- private var lastInterval : double; // Last interval end time
- private var frames = 0; // Frames over current interval
- function Start()
- {
- lastInterval = Time.realtimeSinceStartup;
- frames = 0;
- }
- function OnDisable ()
- {
- if (gui)
- DestroyImmediate (gui.gameObject);
- }
- function Update()
- {
- #if !UNITY_FLASH
- ++frames;
- var timeNow = Time.realtimeSinceStartup;
- if (timeNow > lastInterval + updateInterval)
- {
- if (!gui)
- {
- var go : GameObject = new GameObject("FPS Display", GUIText);
- go.hideFlags = HideFlags.HideAndDontSave;
- go.transform.position = Vector3(0,0,0);
- gui = go.GetComponent.<GUIText>();
- gui.pixelOffset = Vector2(5,55);
- }
- var fps : float = frames / (timeNow - lastInterval);
- var ms : float = 1000.0f / Mathf.Max (fps, 0.00001);
- gui.text = ms.ToString("f1") + "ms " + fps.ToString("f2") + "FPS";
- frames = 0;
- lastInterval = timeNow;
- }
- #endif
- }
|