public void Init()
 {
     spawnTime          = SpawnDelay;
     State              = ScavengeState.Countdown;
     timeRemaining      = 3.99f;
     CountdownText.text = "";
     TimerText.text     = "60:00";
     FrameCheckmark.SetActive(false);
     WheelsCheckmark.SetActive(false);
     SeatCheckmark.SetActive(false);
     HandlebarsCheckmark.SetActive(false);
     hasLoadedRace = false;
 }
    private void Update()
    {
        timeRemaining -= Time.deltaTime;

        switch (State)
        {
        case ScavengeState.Countdown:
            UpdateCountdownTimer();

            if (timeRemaining < 1.0f)
            {
                State              = ScavengeState.InGame;
                timeRemaining      = TotalTime;
                CountdownText.text = "";
            }
            break;

        case ScavengeState.InGame:
            UpdateGameTimer();

            spawnTime += Time.deltaTime;

            if (spawnTime >= SpawnDelay)
            {
                SpawnItem();
                spawnTime = 0;
            }

            if (timeRemaining < 0.0f || HasAllNeededObjects())
            {
                State          = ScavengeState.TimeFinished;
                timeRemaining  = 5.0f;
                TimerText.text = "00:00";
            }
            break;

        case ScavengeState.TimeFinished:
            if (timeRemaining < 0.0f)
            {
                MoveToRaceScene();
            }
            break;
        }
    }