DEV Community

Henrique
Henrique

Posted on

Unity - Criar uma barra de vida

Olá!

Estou fazendo este artigo a partir do breve vídeo que acabei de publicar no meu canal no YouTube

Primeiro vídeo, primeiro artigo -> por isso talvez algumas coisas não estejam tão boas, me perdoe por isso; aceito suas sugestões.

Introdução

O que vamos fazer: Vamos fazer uma barra de vida horizontal simples.
Utilizei a versão 2019.3.0f3 da Unity.
Repositório: acesse aqui

Mão na massa

  1. Precisamos de uma imagem branca, convertida para Sprite, na configuração de importação.

  2. Criar um Canvas com a Image de background e de preenchimento da barra de vida

Como deve ficar a hierarquia

  1. Ao criar o preenchimento, altere o ImageType para Filled, e o Fill Method para Horizontal

Configurar preenchimento

Esse valor FillAmount controla o quanto de preenchimento nós temos, sendo ele entre 0 e 1
Obs.: você só consegue alterar o ImageType se adicionar um Sprite no componente.

Pronto!
Agora crie o Script HealthController.cs


Code

Este é o código que utilizamos no vídeo, e que está disponível no repositório:

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

public class HealthController : MonoBehaviour
{
    public float health = 2;
    public float Health {
        get {
            return health;
        }
        set {
            health = Mathf.Clamp(value, 0, healthMax);
        }
    }
    public float healthMax = 14;

    public Image healthBar;

    private void Update() {
        if (Input.GetKey(KeyCode.UpArrow)) {
            Health += 0.5f;
        }
        if (Input.GetKey(KeyCode.DownArrow)) {
            Health -= 0.5f;
        }
        UpdateHealthBar();
    }

    private void UpdateHealthBar() {
        healthBar.fillAmount = Health / healthMax;
    }
}
Enter fullscreen mode Exit fullscreen mode

Você pode remover as linhas de Input. Elas foram criadas apenas para teste, já que não temos eventos de dano ou ganho de vida.

Espero que tenha ajudado de alguma forma. Qualquer dúvida ou sugestão, eu gostaria de saber.


No meu canal, pretendo adicionar mais vídeos, não tão iniciantes, mas que espero ajudar muita gente; de forma direta e sem rodeios. 😄

Obrigado!

Top comments (0)