46 lines
1.6 KiB
C#
46 lines
1.6 KiB
C#
using System;
|
|
using RebootKit.Engine.Main;
|
|
using RebootKit.Engine.UI;
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace RebootKit.Engine.Services.Development {
|
|
public class DebugOverlayView : UIDocumentView {
|
|
const string k_DebugLabelClassName = "rr__debug-label";
|
|
|
|
VisualElement m_RootElement;
|
|
|
|
Label m_FPSLabel;
|
|
Label m_GameModeLabel;
|
|
|
|
void Update() {
|
|
if (m_RootElement == null) {
|
|
return;
|
|
}
|
|
|
|
Resolution resolution = Screen.currentResolution;
|
|
m_FPSLabel.text = $"fps: {Mathf.RoundToInt(1f / Time.deltaTime)} | dt: {Time.deltaTime:F4}ms | runtime: {Time.time:F4}s | resolution: {resolution.width}x{resolution.height}@{resolution.refreshRateRatio}Hz";
|
|
m_GameModeLabel.text = RR.GameModes.ActiveGameMode.CurrentValue != null
|
|
? $"Game Mode: {RR.GameModes.ActiveGameMode.CurrentValue.GetType().Name}"
|
|
: "Game Mode: none";
|
|
}
|
|
|
|
public override VisualElement Build() {
|
|
m_RootElement = new VisualElement();
|
|
|
|
CreateLabel($"Toggle Overlay [F3] | RebootKit | game: {Application.productName}, version: {Application.version}");
|
|
m_FPSLabel = CreateLabel($"FPS: {Application.targetFrameRate}");
|
|
|
|
m_GameModeLabel = CreateLabel("Game Mode: none");
|
|
return m_RootElement;
|
|
}
|
|
|
|
Label CreateLabel(string text) {
|
|
Label label = (Label)LabelBuilder.New(text).Build();
|
|
label.AddToClassList(k_DebugLabelClassName);
|
|
|
|
m_RootElement.Add(label);
|
|
return label;
|
|
}
|
|
}
|
|
} |