Boa tarde!
Percebi que havia uma dúvida igual a essa em outro tópico, mas não consegui solucionar meu problema com base nela. Quando os zumbis atacam a personagem, aparece o seguinte erro:
"NullReferenceException: Object reference not set to an instance of an object ControlaJogador.TomarDano (System.Int32 dano) (at Assets/Scripts/ControlaJogador.cs:71) ControlaInimigo.AtacaJogador () (at Assets/Scripts/ControlaInimigo.cs:43)"
Além disso, o áudio de dano não é reproduzido e não aparece a mensagem de "fim de jogo" quando a life acaba. A impressão que tive era de que a linha "ControlaAudio.instancia.PlayOneShot(SomDeDano);" travava o código e impedia a execução das linhas seguintes. Coloquei esta linha antes da "scriptControlaInterface.AtualizarSliderVidaJogador();" para testar e concluí que isso realmente acontecia, pois os ataques do zumbis pararam de afetar a barra de life da personagem.
Minha função TomarDano() está assim:
public void TomarDano(int dano){
Vida -= dano;
scriptControlaInterface.AtualizarSliderVidaJogador();
ControlaAudio.instancia.PlayOneShot(SomDeDano);
if (Vida <= 0){
Time.timeScale = 0;
TextoGameOver.SetActive(true);
}
}
e minha classe ControlaAudio está assim:
public class ControlaAudio : MonoBehaviour{
private AudioSource meuAudioSource;
public static AudioSource instancia;
void Awake(){
meuAudioSource = GetComponent<AudioSource>();
instancia = meuAudioSource;
}
}
Já fiz download do código final do módulo para conferir essas funções e tentar encontrar onde errei, mas não encontrei.. Vocês poderiam me ajudar, por gentileza?
Desde já, agradeço.