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 executo 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);
}