Solucionado (ver solução)
Solucionado
(ver solução)
15
respostas

Recebo uma mensagem de NullReference

Eu fiz meu código, tudo certo, mas quando fui ver apareceu o NullReference no console.

15 respostas

Boa tarde e primeiramente muito obrigado por me ajudar a resolver a situação com o botão. Consegui solucionar, porém, logo em seguida apareceu um outro erro: aparece uma mensagem de NullReference no console, pode me ajudar a solucionar por favor?

Oi, Frederick, o erro de NullReference acontece quando você chama uma variável ou alguma outra coisa que está nula.

Então dá uma olhada no erro no console, clica duas vezes e ele vai abrir exatamente na linha do problema. A partir daí você pode ter uma ideia se faltou um GetComponent ou alguma coisa do tipo

Posso te mandar um arquivo zipado do assets?

Qual erro acontece?

NullReference

Essa parte eu entendi haha

Mas no console normalmente aparecem várias explicações depois do erro sobre onde ele ocorreu, em qual linha etc. Depois você pode colar o erro todo aqui?

NullReferenceException: Object reference not set to an instance of an object ControlaBarraDeVida.GameOver () (at Assets/scripts/ControlaBarraDeVida.cs:43)

você consegue colar esse ControlaBarraDeVida e dizer qual a linha 43 só pra termos de referencia.

Na linha 43 só tem uma encerramento de chave "}"

Oi, Frederick, talvez o problema seja uma linha antes.

Você consegue colar esse ControlaBarraDeVida e dizer qual a linha 43 só pra termos de referencia.

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement;

public class ControlaBarraDeVida : MonoBehaviour { private controlaJogador scriptcontrolaJogador; public Slider SliderVidaJogador; public GameObject PainelDeGameOver; public Text TextoTempoDeSobrevivencia;

// Start is called before the first frame update
void Start()
{
    scriptcontrolaJogador = GameObject.FindWithTag("Jogador")
          .GetComponent<controlaJogador>();

    SliderVidaJogador.maxValue = scriptcontrolaJogador.Vida;
    Time.timeScale = 1;

}

// Update is called once per frame
void Update()
{

}

public void AtualizarSliderVidaJogador()
{
    SliderVidaJogador.value = scriptcontrolaJogador.Vida;
}
public void GameOver()
{
    PainelDeGameOver.SetActive(true);
    Time.timeScale = 0;

    int minutos = (int)(Time.timeSinceLevelLoad / 60);
    int segundos = (int)(Time.timeSinceLevelLoad % 60);
    TextoTempoDeSobrevivencia.text = "Você sobreviveu por " + minutos + "min e " + segundos + "s";

→ }

public void Reiniciar()
{
    SceneManager.LoadScene("project3");
}

}

A variável TextoTempoDeSobrevivencia tá preenchida no inspector?

É para preencher?

solução!

Tem que arrastar ela no inspector, eu faço isso bem no comecinho do video por volta dos 50 segundos

Deu certo. Muito Obrigado!