using Code.DI; using Code.Input; using TMPro; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; namespace Code.Gameplay { public class RaceManager : MonoBehaviour { [Header("UI")] [SerializeField] private TMP_Text countdownText; [SerializeField] private TMP_Text timerText; [SerializeField] private GameObject resultsWrapper; [Header("Settings")] [SerializeField] private float countdownDuration = 3f; [SerializeField] private float startDelayAfterGo = 0.5f; private float _startTime; private float _elapsedTime; private bool _isRaceActive = false; private IInputService _inputService; private TMP_Text _resultText; private TMP_InputField _nameField; private Button _restartButton; private Button _toMenuButton; private void Awake() { var container = FindFirstObjectByType(); _inputService = container.Resolve(); _resultText = resultsWrapper.transform.Find("Text Area")?.Find("Text")?.GetComponent(); _nameField = resultsWrapper.transform.Find("EnterNameField")?.GetComponent(); _restartButton = resultsWrapper.transform.Find("RestartButton")?.GetComponent