Quando o zumbi bate no jogador ocorre um erro que diz:
NullReferenceException: Object reference not set to an instance of an object
ControlaJogador.TomarDano (System.Int32 dano) (at Assets/Scripts/ControlaJogador.cs:78)
ControlaInimigo.AtacaJogador () (at Assets/Scripts/ControlaInimigo.cs:54)
Então fui até essas linhas mas não consegui encontrar o erro de jeito nenhum, segue os codigos, e sinalizei as linhas que estão com erro:
Estou gostando muito das aulas, então desde já agradeço a atenção. :)
ControlaJogador:
public void TomarDano (int dano)
{
Vida -= dano;
scriptControlaInterface.AtualizarSliderVidaJogador(); <------
ControlaAudio.instancia.PlayOneShot(SomDeDano);
if(Vida <= 0)
{
Time.timeScale = 0;
TextoGameOver.SetActive(true);
}
}
}
ControlaInimigo:
void AtacaJogador ()
{
int dano = Random.Range(20, 30);
Jogador.GetComponent<ControlaJogador>().TomarDano(dano); <-----------
}
}
ControlaAudio:
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;
}
// Update is called once per frame
void Update()
{
}
}
ControlaInterface:
private ControlaJogador scriptControlaJogador;
public Slider SliderVidaJogador;
void Start()
{
scriptControlaJogador = GameObject.FindWithTag("Jogador").GetComponent<ControlaJogador>();
SliderVidaJogador.maxValue = scriptControlaJogador.Vida;
AtualizarSliderVidaJogador();
}
// Update is called once per frame
void Update()
{
}
public void AtualizarSliderVidaJogador ()
{
SliderVidaJogador.value = scriptControlaJogador.Vida;
}
}