Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Não reproduz a música quando o personagem toma dano, e cria um bug que deixa o personagem imortal

O código apresentado não funciona corretamente no jogo

Estou assistindo as aulas do curso Unity parte 2: iluminação, interface e boas práticas (expecificamente a aula 02 Audio, Cenário, iluminação), mas quando fui colocar em prática não funciona corretamente. O código não realiza a função desejada apresentando o seguinte erro:

NullReferenceException: Object reference not set to an instance of an object Controla_Jogador.TomaDano (System.Int32 dano) (at Assets/Scripts/Controla_Jogador.cs:74) Controle_Inimigo.AtacaJogador () (at Assets/Scripts/Controle_Inimigo.cs:49)

Segui todos os passos exatamente igual ao curso (com excessão dos nomes das variáveis, funções, etc...) mas quando compilo o jogo para teste o áudio que é esperado que seja reproduzido quando o personagem leva dano não toca, e não permite que as linhas de código que estão abaixo dele funcionem. Códigos que estão dando erro:

public class Controla_Audio : MonoBehaviour
{
    private AudioSource meuAudioSource;
    public static AudioSource instancia;
    
    private void Awake() {
        meuAudioSource = GetComponent<AudioSource>();
        instancia = meuAudioSource;
    }

}
public void TomaDano(int dano){
      Vida -= dano;
      //Código que reproduz o som de dano
      Controla_Audio.instancia.PlayOneShot(SomDeDano);
      ScriptControlaUI.AtualizaSliderVida();

      if(Vida <= 0){
         Time.timeScale = 0;
         TextoGameOver.SetActive(true);
      }
1 resposta
solução!

Consegui resolver o problema, foi apenas um erro de atribuição que eu tinha cometido.