ProfilerFPSLabel.cs 851 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. namespace SRDebugger.UI
  2. {
  3. using Services;
  4. using SRF;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. public class ProfilerFPSLabel : SRMonoBehaviourEx
  8. {
  9. private float _nextUpdate;
  10. protected override void Update()
  11. {
  12. base.Update();
  13. if (Time.realtimeSinceStartup > _nextUpdate)
  14. {
  15. Refresh();
  16. }
  17. }
  18. private void Refresh()
  19. {
  20. _text.text = "FPS: {0:0.00}".Fmt(1f/_profilerService.AverageFrameTime);
  21. _nextUpdate = Time.realtimeSinceStartup + UpdateFrequency;
  22. }
  23. #pragma warning disable 649
  24. [Import] private IProfilerService _profilerService;
  25. public float UpdateFrequency = 1f;
  26. [RequiredField] [SerializeField] private Text _text;
  27. #pragma warning restore 649
  28. }
  29. }