You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/3rd/StompyRobot/SRDebugger/Scripts/UI/Controls/ProfilerGraphAxisLabel.cs

52 lines
1.3 KiB
C#

3 months ago
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);
}
}
}