12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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) //show a second before and 2 after
- {
- GUI.TextField(new Rect(225, 65, 120, 100), "FMS!", bigRedTextStyle);
- if (distToInterval <= 0) // set timestamp for next interval
- {
- timestampLastFMS = Time.time;
- }
- }
- }
- }
- }
|