|
@@ -0,0 +1,46 @@
|
|
|
+using Routes;
|
|
|
+using UnityEngine;
|
|
|
+
|
|
|
+namespace Logging
|
|
|
+{
|
|
|
+ public class FMSCountdown : MonoBehaviour
|
|
|
+ {
|
|
|
+ public RouteManager routeManager;
|
|
|
+ public int fmsInterval = 30;
|
|
|
+
|
|
|
+ private float startTime = -1f;
|
|
|
+ private float timestampLastFMS;
|
|
|
+
|
|
|
+ private GUIStyle bigRedTextStyle;
|
|
|
+
|
|
|
+ private void Start()
|
|
|
+ {
|
|
|
+ bigRedTextStyle = new GUIStyle {fontSize = 72, normal = new GUIStyleState {textColor = Color.red}};
|
|
|
+ var activeRoute = routeManager.routes[routeManager.selectedRoute];
|
|
|
+ activeRoute.OnStartEntered += () =>
|
|
|
+ {
|
|
|
+ startTime = Time.time;
|
|
|
+ timestampLastFMS = startTime;
|
|
|
+ };
|
|
|
+ activeRoute.OnFinishPassed += () => gameObject.SetActive(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void OnGUI()
|
|
|
+ {
|
|
|
+ if (startTime < 0) return;
|
|
|
+ var time = Time.time - startTime;
|
|
|
+ var timeFromLastFms = Time.time - timestampLastFMS;
|
|
|
+ GUI.TextField(new Rect(20, 85, 200, 20), $"Seconds Passed: {time:N2}");
|
|
|
+
|
|
|
+ var distToInterval = fmsInterval - timeFromLastFms;
|
|
|
+ if (distToInterval <= 1 || distToInterval >= fmsInterval - 2 && time > fmsInterval)
|
|
|
+ {
|
|
|
+ GUI.TextField(new Rect(225, 65, 120, 100), "FMS!", bigRedTextStyle);
|
|
|
+ if (distToInterval <= 0)
|
|
|
+ {
|
|
|
+ timestampLastFMS = Time.time;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|