Como destruir um singleton?

No jogo Zombie Caos, foi criado no script de “Interface de Usuário” um padrão singleton, com isso, ao perder no jogo e voltar ao menu inicial, o objeto do jogador não é destruido, e acaba gerando conflito na cena de menu, pois a cena acaba ficando com dois listeners, além disso, ele perde a referência dos objetos da cena de jogo, então quando o jogo é iniciado novamente ele começa todo desconfigurado. Em resumo, acho que perdi algo durante o curso onde tratava isso.
Fiz as seguintes tentativas sem sucesso:

  1. Tentei retirar o padrão singleton do “Awake” do código, deixando só a definição “static” mas não funcionou.
  2. Tentei comentar a linha "DontDestroyOnLoad(gameObject); " do padrão para ele ser destruido entre as mudanças de cena mas tbm não funcionou.
    Obs: Tentei criar um botão de reiniciar na tela de GameOver, usando o script o método “Carregar Nova Cena”, mas não funcionou tbm, acredito que pelo mesmo motivo.

Fiz uma buscas nos outros scripts do objeto “Jogador” e encontrei o script “Jogador” que tbm tem um padrão singleton, exclui a linha “DontDestroyOnLoad(gameObject);” nos 2 scripts e tudo funcionou normalmente agora, tanto o botão jogar no menu inicial como o botão “Reiniciar” que adicionei no meu “Game Over”.