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