3
respostas

Cor da barra de vida

Não usei o sprite verde da barra, mas setei a cor dela como verde. Gostaria de saber como posso mudar a barra de vida para vermelho se o jogador estivesse com menos de 30 de vida

3 respostas

Oi, Lucas, essa uma funcionalidade legal.

Você pode usar um sprite de vida todo branco e no image trabalhar com Color que multiplicada cada pixel do sprite para aquela cor. Como o Sprite é branco você pode usar numa boa.

Então via código você pode ir trocando a propriedade color da imagem da maneira que quiser.

Entendi! Tentei procurar como implementar isso, mas achei apenas maneiras de criar um novo objeto e usa-lo no lugar do anterior, não apenas mudar a sua cor. Como posso usar essa propriedade de color? tentei algo assim (imagino que a sintaxe não esteja correta kkkkk:

void Start() 
    {
        scriptControlaJogador = GameObject.FindWithTag("Jogador").GetComponent<ControlaJogador>();

        SliderVidaJogador.maxValue = scriptControlaJogador.Vida;
        AtualizarSliderVidaJogador();
        SliderVidaJogador.colors(...); //mudar o fill para verde sempre que o jogo reinicia
    }

    public void AtualizarSliderVidaJogador ()
    {
        SliderVidaJogador.value = scriptControlaJogador.Vida;
        if(scriptControlaJogador.Vida <= 30)
        {
            SliderVidaJogador.colors(...)//muda o fill para vermelho
        }
    }

}

Na Hierarquia se você abrir a Slider. Dentro dela vai ter um objeto que tem a imagem da slider o Fill. Você teria que criar uma variável do tipo Image com esse objeto.

public Image slider_image

slider_image.color = Color.red;

Eu começaria assim. Tem outras formas que você pode usar o OnChange da Slider se quiser pesquisar depois