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

Vida não começa com 100%

Boa noite. Ao iniciar o jogo a vida não começa com 100 e se perde. O erro está no start do script ControlaInterface mas não consigo corrigir.

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

Script ControlaInterface

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

public class ControlaInterface : MonoBehaviour
{
    private ControlaJogador scriptControlaJogador;
    public Slider SliderVidaJogador;

    // Start is called before the first frame update
    void Start()
    {
        scriptControlaJogador = GameObject.FindWithTag("Jogador").GetComponent<ControlaJogador>();
        SliderVidaJogador.maxValue = scriptControlaJogador.statusJogador.Vida;
        AtualizarSliderVidaJogador();
    }

    public void AtualizarSliderVidaJogador()
    {
        SliderVidaJogador.value = scriptControlaJogador.statusJogador.VidaInicial;
    }
}
4 respostas

Oi, Gustavo, tudo bem?

Acredito que o erro não seja no código. Dá uma olhada se variável SliderVidaJogador tá preenchida com a slider na Unity e também se o scriptControlaJogador esta recebendo o status certinho.

Bom dia professor Henrique, tudo bem e com você? Sim a variável SliderVidaJogador tá preenchida com o Slider na Unity. Segue imagem https://drive.google.com/file/d/1CxPPUWe3RoV0PuCy7UwZNp1qhRLShH-r/view?usp=sharing

Associei no parâmetro Status Jogador (dentro do jogador no scriptControlaJogador) e agora a vida está com 100% e quando os zumbis entram em contato a vida continua em 100%. Segue imagem https://drive.google.com/file/d/1vJJMOThJbpMz2OWPSH0pteGF8GPrkrIt/view?usp=sharing

Obrigado e aguardo.

Estranho, parece tudo certinho mesmo.

Você consegue fazer um .zip do projeto público e postar aqui pra gente dar uma olhada? :)

solução!

Consegui resolver. Apenas alterei a variável VidaInicial para Vida no método abaixo.

public void AtualizarSliderVidaJogador()
    {
        SliderVidaJogador.value = scriptControlaJogador.statusJogador.Vida;
    }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software