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

Falha ao reiniciar o jogo após criar o Script de Status

Olá Henrique, boa tarde,

Após realizar esse passo de criar o Script de Status para o jogador e para os Zumbis eu percebi um problema ao tentar reiniciar o jogo:

Durante a primeira vez que ele roda, tudo corre bem sem problemas, mas quando o personagem do jogador morre e eu tento clicar com o mouse para reiniciar o jogo, eu recebo a seguinte menssagem:

"NullReferenceException: Object reference not set to an instance of an object ControlaInterface.Start () (at Assets/Scripts/ControlaInterface.cs:15)"

Nesta linha de comando referente ao script ControlaInterface, eu tenho o código abaixo:

"SliderVidaJogador.maxValue = scriptControlaJogador.StatusJogador.Vida;"

Eu não sei exatamente porque está ocorrendo este erro, mas se eu criar uma variável publica no script do jogador (ex: Vida1) e substituir essa parte do código "scriptControlaJogador.StatusJogador.Vida" por apenas "scriptControlaJogador.Vida1" o erro acima não volta a acontecer e eu posso reiniciar o jogo normalmente após a morte do personagem.

Claro que neste caso, eu não tenho a visualização gráfica da barra de vida decrescendo a cada golpe.

O que eu poderia fazer para resolver esse erro?

4 respostas
solução!

Oi, Fernando, tudo bem?

Esse é um problema que se não me engano resolvemos na parte 3 do curso. Sua solução resolve momentaneamente se quiser continuar com ela, sem problemas.

Isso acontece por causa da ordem dos scripts, no caso o Status tem que rodar antes do ControlaJogador porque senão vai dar um erro de Null, já que ele não foi computado ainda. Aí na Unity tem uma forma de você definir qual deve rodar primeiro já que mais de uma coisa pode usar Awake mas um depende do outro.

Se quiser dar uma olhada na doc da função você acha aqui e você colocaria pra rodar nessa ordem:

  • Status
  • ControlaJogador
  • ControlaInterface

Bom dia, tudo bem com você?

Muito obrigado pela ajuda Henrique.

Vou verificar esta função que você me recomendou.

Até breve.

Olá Henrique, acabei de verificar o doc que você me indicou e, após corrigir a ordem dos scripts como você sugeriu, não tive mais problemas ao reiniciar o jogo após a morte do personagem do jogador.

Mais uma vez, obrigado pela ajuda e atenção.

Boa, Fernando, é exatamente isso que vamos fazer algumas aulas a frente.

Durante o curso você vai notar que vamos deixando alguns bugs pra trás e aos poucos vamos resolvendo justamente pra criar esse raciocinio de como encontrar e como resolver.

Nem todos são soluciados mas discutimos eles como um desafio porque é importante ter o conhecimento sobre como investigar, entender e pensar em algo que pode resolver um problema. Assim vamos explorando funcionalidades da Unity.