public void EndGame()
        {
            // clean up
            _starField.Clear();
            _asteroidManager.Clear();
            _shotManager.Clear();
            _enemyManager.Clear();
            _pieceExplosionManager.Clear();
            _pointExplosionManager.Clear();

            _player.DestroyEntity();
            _player = null;
        }
    public void SetGameState(GameState state)
    {
        switch (state)
        {
        case GameState.TitleScreen:
            gameUI.SetActive(false);
            gameOverScreen.SetActive(false);
            playerControls.SetActive(false);

            titleScreen.SetActive(true);
            break;

        case GameState.GameOverScreen:
            gameUI.SetActive(false);
            titleScreen.SetActive(false);
            playerControls.SetActive(false);

            finalScoreText.SetText(
                string.Format("High Score: {0}\nThis Game: {1}",
                              _scoreManager.highScore,
                              _scoreManager.score)
                );
            gameOverScreen.SetActive(true);
            break;

        case GameState.GameScreen:
            titleScreen.SetActive(false);
            gameOverScreen.SetActive(false);

            _asteroidManager.Clear();
            _scoreManager.Clear();
            gameUI.SetActive(true);
            playerControls.SetActive(true);
            break;
        }

        _state = state;
    }