Oi, eu procurei, a minha dúvida aqui no Fórum, o problema apresentado foi muito similar, eu recebo a mensagem: NullReferenceException: Object reference not set to an instance of an object ControlaJogador.TomarDano (System.Int32 dano) (at Assets/Script/ControlaJogador.cs:82)
public class ControlaJogador : MonoBehaviour
{
public float Velocidade = 10;
private Vector3 direcao;
public LayerMask MascaraChao;
public GameObject TextoGameOver;
private Rigidbody rigidbodyJogador;
private Animator animatorJogador;
public int Vida = 100;
public ControlaInterface scriptControlaInterface;
public AudioClip SomDeDano;
...
public void TomarDano (int dano)
{
Vida -= dano;
scriptControlaInterface.AtualizarVidaJogador();
ControlaAudio.instancia.PlayOneShot(SomDeDano); //linha 82
if (Vida <= 0)
{
Time.timeScale = 0;
TextoGameOver.SetActive(true);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ControlaAudio : MonoBehaviour
{
private AudioSource meuAudioSource;
public static AudioSource instancia;
void Awake ()
{
meuAudioSource = GetComponent<AudioSource>();
instancia = meuAudioSource;
}
}
Não tem o som de dano, e também não acarreta na tela de game over assim como na dúvida https://cursos.alura.com.br/forum/topico-audio-do-dano-nao-esta-reproduzindo-230785 mas aqui o meuAudioSource consta como igual a solução apresentada Um adendo, copiei o script tal qual o do som da arma, o audio e consta mesmo tipo de problema:
void Update () {
if(Input.GetButtonDown("Fire1"))
{
Instantiate(Bala, CanoDaArma.transform.position, CanoDaArma.transform.rotation);
ControlaAudio.instancia.PlayOneShot(SomDoTiro); //problema nessa linha
}
}