private void Update()
        {
            if (ShouldShowTutorial && !ShowedTutorial)
            {
                ShowedTutorial     = true;
                ShouldShowTutorial = false;
                startMenu.Destroy();
                startMenu    = null;
                tutorialMenu = new TutorialMenu();
                LateAddChild(tutorialMenu);
                ShowedMenu = false;
            }

            if (ShouldStartPlaying && !StartedPlaying)
            {
                StartedPlaying     = true;
                ShouldStartPlaying = false;
                tutorialMenu.Destroy();
                tutorialMenu = null;
                grid         = new GameLoop();
                LateAddChild(grid);
                ShowedMenu = false;
                SoundManager.Instance.Stop("MenuMusic");
                SoundManager.Instance.Play("GameMusic");
            }

            if (ShouldStopPlaying && !StoppedPlaying)
            {
                StoppedPlaying    = true;
                ShouldStopPlaying = false;
                score             = grid.Score;
                if (grid.GotTreasure)
                {
                    gameOverWin = new GameOverWin(score);
                    AddChild(gameOverWin);
                }
                else
                {
                    gameOver = new GameOver(score);
                    AddChild(gameOver);
                }
                grid.Destroy();
                grid = null;
                SoundManager.Instance.Stop("fuelLow");
                SoundManager.Instance.Stop("ambient");
                SoundManager.Instance.Stop("drilling");
                ShowedMenu = false;
            }

            if (ShouldShowMenu && !ShowedMenu)
            {
                ShouldShowMenu    = false;
                ShowedMenu        = true;
                ShowedTutorial    = false;
                StartedPlaying    = false;
                StoppedPlaying    = false;
                ShowedLeaderboard = false;
                score             = -1;
                gameOver?.Destroy();
                leaderboard?.Destroy();
                startMenu = new StartMenu();
                AddChild(startMenu);
                SoundManager.Instance.Play("MenuMusic");
            }

            if (ShouldShowLeaderboard && !ShowedLeaderboard)
            {
                ShouldShowLeaderboard = false;
                ShowedLeaderboard     = true;
                gameOverWin.Destroy();
                leaderboard = new Leaderboard(score);
                AddChild(leaderboard);
            }
        }
 public GameManager()
 {
     SoundManager.Instance.Play("MenuMusic");
     startMenu = new StartMenu();
     AddChild(startMenu);
 }