Eu fiz meu código, tudo certo, mas quando fui ver apareceu o NullReference no console.
Eu fiz meu código, tudo certo, mas quando fui ver apareceu o NullReference no console.
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?
Tem que arrastar ela no inspector, eu faço isso bem no comecinho do video por volta dos 50 segundos
Deu certo. Muito Obrigado!