52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
| namespace SRDebugger.UI.Controls
 | |
| {
 | |
|     using SRF;
 | |
|     using UnityEngine;
 | |
|     using UnityEngine.UI;
 | |
| 
 | |
|     [RequireComponent(typeof (RectTransform))]
 | |
|     public class ProfilerGraphAxisLabel : SRMonoBehaviourEx
 | |
|     {
 | |
|         private float _prevFrameTime;
 | |
|         private float? _queuedFrameTime;
 | |
|         private float _yPosition;
 | |
| 
 | |
|         [RequiredField] public Text Text;
 | |
| 
 | |
|         protected override void Update()
 | |
|         {
 | |
|             base.Update();
 | |
| 
 | |
|             if (_queuedFrameTime.HasValue)
 | |
|             {
 | |
|                 SetValueInternal(_queuedFrameTime.Value);
 | |
|                 _queuedFrameTime = null;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public void SetValue(float frameTime, float yPosition)
 | |
|         {
 | |
|             if (_prevFrameTime == frameTime && _yPosition == yPosition)
 | |
|             {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             _queuedFrameTime = frameTime;
 | |
|             _yPosition = yPosition;
 | |
|         }
 | |
| 
 | |
|         private void SetValueInternal(float frameTime)
 | |
|         {
 | |
|             _prevFrameTime = frameTime;
 | |
| 
 | |
|             var ms = Mathf.FloorToInt(frameTime*1000);
 | |
|             var fps = Mathf.RoundToInt(1f/frameTime);
 | |
| 
 | |
|             Text.text = "{0}ms ({1}FPS)".Fmt(ms, fps);
 | |
| 
 | |
|             var r = (RectTransform) CachedTransform;
 | |
|             r.anchoredPosition = new Vector2(r.rect.width*0.5f + 10f, _yPosition);
 | |
|         }
 | |
|     }
 | |
| }
 |