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
course content

Conteúdo do Curso

Jogo de Luta no Unity

Jogo de Luta no Unity

1. Sistema de Animação do Unity
2. Comportamento do Jogador
3. Comportamento do Inimigo
4. Melhore o Jogo
5. Melhore o Jogo Flappy Bird

book
Barra 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

course content

Conteúdo do Curso

Jogo de Luta no Unity

Jogo de Luta no Unity

1. Sistema de Animação do Unity
2. Comportamento do Jogador
3. Comportamento do Inimigo
4. Melhore o Jogo
5. Melhore o Jogo Flappy Bird

book
Barra 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
some-alt