Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Barra de Vida da Interface | Melhore o Jogo
Jogo de Luta no Unity

bookBarra de Vida da Interface

A classe Player inclui código para atualizar a interface da barra de vida com base na vida atual do jogador. Isso é gerenciado por meio de três variáveis: UIHealthTransform, HealthUIScale e startingHealthUIWidth. Abaixo está uma explicação de como essas variáveis são utilizadas para controlar a barra de vida.

Script para Barra de Vida

// Initialization in Start method
private void Start()
{
    HealthUIScale = UIHealthTransform.sizeDelta;
    startingHealthUIWidth = HealthUIScale.x;
}

// Updating health in GetAttacked method
public void GetAttacked(int damage)
{
    if (isDead) return;
    health -= damage;
    HealthUIScale.x = health * startingHealthUIWidth / 100f;
    UIHealthTransform.sizeDelta = HealthUIScale;
    if (health <= 0)
    {
        isDead = true;
        animator.SetBool("death", true);
        var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity);
        deathParticle.Play();
        Destroy(deathParticle.gameObject, 5);
        GameManager.instance.FinishGame();
    }
}

Inicialização no Método Start

No método Start, o tamanho inicial da barra de vida é capturado e armazenado.

private void Start()
{
    // ... other initializations ...
    HealthUIScale = UIHealthTransform.sizeDelta;
    startingHealthUIWidth = HealthUIScale.x;
}

Atualização da Vida no Método GetAttacked

O método GetAttacked atualiza a interface da barra de vida sempre que o jogador recebe dano.

Redução da Vida:

health -= damage;

A vida do jogador é reduzida pela quantidade de dano recebido.

Cálculo da Escala da Barra de Vida:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Explicação

Esta linha de código atualiza a largura da barra de vida com base na vida atual do jogador. Veja como funciona:

Vida: health é um float que representa a vida atual do jogador. Suponha que varie de 0 a 100.

Largura Inicial da Barra de Vida: startingHealthUIWidth é um float que representa a largura inicial da barra de vida quando o jogador está com vida cheia.

Escalonamento da Largura da Barra de Vida: O objetivo é reduzir proporcionalmente a largura da barra de vida conforme a vida do jogador diminui; Para isso, é necessário calcular qual porcentagem da vida do jogador resta e então aplicar essa porcentagem à largura inicial da barra de vida.

Cálculo Passo a Passo

Porcentagem de Vida Restante: Divida a vida atual por 100 para obter um valor entre 0 e 1 que representa a porcentagem de vida restante do jogador. Por exemplo, se a vida do jogador for 75, health / 100f resultará em 0.75. Esse cálculo converte o valor da vida em um formato percentual adequado para a representação na interface do usuário.

Aplicar Porcentagem à Largura Inicial:

Multiplique a porcentagem de vida restante pela largura inicial da barra de vida. Por exemplo, se o startingHealthUIWidth for 200 (a largura total) e a vida do jogador estiver em 75%, a nova largura da barra de vida será 150 unidades (0.75 * 200 = 150).

Utilizando esse cálculo, a largura da barra de vida representa de forma dinâmica e precisa a vida atual do jogador, fornecendo um feedback visual claro ao jogador.

Atualizar UI da Barra de Vida:

UIHealthTransform.sizeDelta = HealthUIScale;

O tamanho do RectTransform que representa a barra de vida é atualizado.

Verificação de Morte do Jogador:

if (health <= 0)
{
    isDead = true;
    animator.SetBool("death", true);
    var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity);
    deathParticle.Play();
    Destroy(deathParticle.gameObject, 5);
    GameManager.instance.FinishGame();
}

Se a vida cair para 0 ou menos, o jogador é marcado como morto, e a animação de morte e partículas são acionadas.

Resumo da Funcionalidade da Barra de Vida na UI

Inicialização: O tamanho inicial da barra de vida é capturado no início.

Atualização da Barra de Vida: Quando o jogador recebe dano, o valor da vida é reduzido e a largura da barra de vida é recalculada e atualizada de acordo.

Morte do Jogador: Se a vida chegar a zero, o jogador é marcado como morto, acionando a animação de morte, partículas e encerrando o jogo.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.33

bookBarra de Vida da Interface

Deslize para mostrar o menu

A classe Player inclui código para atualizar a interface da barra de vida com base na vida atual do jogador. Isso é gerenciado por meio de três variáveis: UIHealthTransform, HealthUIScale e startingHealthUIWidth. Abaixo está uma explicação de como essas variáveis são utilizadas para controlar a barra de vida.

Script para Barra de Vida

// Initialization in Start method
private void Start()
{
    HealthUIScale = UIHealthTransform.sizeDelta;
    startingHealthUIWidth = HealthUIScale.x;
}

// Updating health in GetAttacked method
public void GetAttacked(int damage)
{
    if (isDead) return;
    health -= damage;
    HealthUIScale.x = health * startingHealthUIWidth / 100f;
    UIHealthTransform.sizeDelta = HealthUIScale;
    if (health <= 0)
    {
        isDead = true;
        animator.SetBool("death", true);
        var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity);
        deathParticle.Play();
        Destroy(deathParticle.gameObject, 5);
        GameManager.instance.FinishGame();
    }
}

Inicialização no Método Start

No método Start, o tamanho inicial da barra de vida é capturado e armazenado.

private void Start()
{
    // ... other initializations ...
    HealthUIScale = UIHealthTransform.sizeDelta;
    startingHealthUIWidth = HealthUIScale.x;
}

Atualização da Vida no Método GetAttacked

O método GetAttacked atualiza a interface da barra de vida sempre que o jogador recebe dano.

Redução da Vida:

health -= damage;

A vida do jogador é reduzida pela quantidade de dano recebido.

Cálculo da Escala da Barra de Vida:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Explicação

Esta linha de código atualiza a largura da barra de vida com base na vida atual do jogador. Veja como funciona:

Vida: health é um float que representa a vida atual do jogador. Suponha que varie de 0 a 100.

Largura Inicial da Barra de Vida: startingHealthUIWidth é um float que representa a largura inicial da barra de vida quando o jogador está com vida cheia.

Escalonamento da Largura da Barra de Vida: O objetivo é reduzir proporcionalmente a largura da barra de vida conforme a vida do jogador diminui; Para isso, é necessário calcular qual porcentagem da vida do jogador resta e então aplicar essa porcentagem à largura inicial da barra de vida.

Cálculo Passo a Passo

Porcentagem de Vida Restante: Divida a vida atual por 100 para obter um valor entre 0 e 1 que representa a porcentagem de vida restante do jogador. Por exemplo, se a vida do jogador for 75, health / 100f resultará em 0.75. Esse cálculo converte o valor da vida em um formato percentual adequado para a representação na interface do usuário.

Aplicar Porcentagem à Largura Inicial:

Multiplique a porcentagem de vida restante pela largura inicial da barra de vida. Por exemplo, se o startingHealthUIWidth for 200 (a largura total) e a vida do jogador estiver em 75%, a nova largura da barra de vida será 150 unidades (0.75 * 200 = 150).

Utilizando esse cálculo, a largura da barra de vida representa de forma dinâmica e precisa a vida atual do jogador, fornecendo um feedback visual claro ao jogador.

Atualizar UI da Barra de Vida:

UIHealthTransform.sizeDelta = HealthUIScale;

O tamanho do RectTransform que representa a barra de vida é atualizado.

Verificação de Morte do Jogador:

if (health <= 0)
{
    isDead = true;
    animator.SetBool("death", true);
    var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity);
    deathParticle.Play();
    Destroy(deathParticle.gameObject, 5);
    GameManager.instance.FinishGame();
}

Se a vida cair para 0 ou menos, o jogador é marcado como morto, e a animação de morte e partículas são acionadas.

Resumo da Funcionalidade da Barra de Vida na UI

Inicialização: O tamanho inicial da barra de vida é capturado no início.

Atualização da Barra de Vida: Quando o jogador recebe dano, o valor da vida é reduzido e a largura da barra de vida é recalculada e atualizada de acordo.

Morte do Jogador: Se a vida chegar a zero, o jogador é marcado como morto, acionando a animação de morte, partículas e encerrando o jogo.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
some-alt