ShowFps.js 1016 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. @script ExecuteInEditMode
  2. private var gui : GUIText;
  3. private var updateInterval = 1.0;
  4. private var lastInterval : double; // Last interval end time
  5. private var frames = 0; // Frames over current interval
  6. function Start()
  7. {
  8. lastInterval = Time.realtimeSinceStartup;
  9. frames = 0;
  10. }
  11. function OnDisable ()
  12. {
  13. if (gui)
  14. DestroyImmediate (gui.gameObject);
  15. }
  16. function Update()
  17. {
  18. #if !UNITY_FLASH
  19. ++frames;
  20. var timeNow = Time.realtimeSinceStartup;
  21. if (timeNow > lastInterval + updateInterval)
  22. {
  23. if (!gui)
  24. {
  25. var go : GameObject = new GameObject("FPS Display", GUIText);
  26. go.hideFlags = HideFlags.HideAndDontSave;
  27. go.transform.position = Vector3(0,0,0);
  28. gui = go.GetComponent.<GUIText>();
  29. gui.pixelOffset = Vector2(5,55);
  30. }
  31. var fps : float = frames / (timeNow - lastInterval);
  32. var ms : float = 1000.0f / Mathf.Max (fps, 0.00001);
  33. gui.text = ms.ToString("f1") + "ms " + fps.ToString("f2") + "FPS";
  34. frames = 0;
  35. lastInterval = timeNow;
  36. }
  37. #endif
  38. }