Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Barra de Salud de la Interfaz | Mejorar el Juego
Juego de Lucha en Unity

bookBarra de Salud de la Interfaz

La clase Player incluye código para actualizar la interfaz de la barra de salud según la salud actual del jugador. Esto se gestiona mediante tres variables: UIHealthTransform, HealthUIScale y startingHealthUIWidth. A continuación se explica cómo se utilizan estas variables para gestionar la barra de salud.

Script para la barra de salud

// 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();
    }
}

Inicialización en el método Start

En el método Start, se captura y almacena el tamaño inicial de la barra de salud.

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

Actualización de salud en el método GetAttacked

El método GetAttacked actualiza la interfaz de la barra de salud cada vez que el jugador recibe daño.

Reducción de salud:

health -= damage;

La salud del jugador se reduce en la cantidad de daño recibido.

Cálculo de la escala de la barra de salud:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Explicación

Esta línea de código actualiza el ancho de la barra de salud según la salud actual del jugador. Así es como funciona:

Salud: health es un valor flotante que representa la salud actual del jugador. Supongamos que varía de 0 a 100.

Ancho inicial de la barra de salud: startingHealthUIWidth es un valor flotante que representa el ancho inicial de la barra de salud cuando el jugador tiene la salud completa.

Escalado del ancho de la barra de salud: El objetivo es reducir proporcionalmente el ancho de la barra de salud a medida que disminuye la salud del jugador; Para lograr esto, es necesario calcular qué porcentaje de salud le queda al jugador y luego aplicar ese porcentaje al ancho inicial de la barra de salud.

Cálculo paso a paso

Porcentaje de salud restante: Dividir la salud actual entre 100 para obtener un valor entre 0 y 1 que representa el porcentaje de salud restante del jugador. Por ejemplo, si la salud del jugador es 75, health / 100f dará como resultado 0.75. Este cálculo traduce el valor de salud a un formato porcentual adecuado para la representación en la interfaz de usuario.

Aplicar porcentaje al ancho inicial:

Multiplicar el porcentaje de salud restante por el ancho inicial de la barra de salud. Por ejemplo, si el startingHealthUIWidth es 200 (el ancho completo), y la salud del jugador es 75%, el nuevo ancho de la barra de salud será de 150 unidades (0.75 * 200 = 150).

Mediante este cálculo, el ancho de la barra de salud representa de manera dinámica y precisa la salud actual del jugador, proporcionando una retroalimentación visual clara al jugador.

Actualizar la interfaz de la barra de salud:

UIHealthTransform.sizeDelta = HealthUIScale;

Se actualiza el tamaño del RectTransform que representa la barra de salud.

Verificación de muerte del jugador:

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();
}

Si la salud cae a 0 o menos, el jugador se marca como muerto y se activan la animación y las partículas de muerte.

Resumen de la funcionalidad de la barra de salud

Inicialización: El tamaño inicial de la barra de salud se captura al inicio.

Actualización de la barra de salud: Cuando el jugador recibe daño, el valor de salud disminuye y el ancho de la barra de salud se recalcula y actualiza en consecuencia.

Muerte del jugador: Si la salud llega a cero, el jugador se marca como muerto, activando la animación y las partículas de muerte, y finalizando la partida.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookBarra de Salud de la Interfaz

La clase Player incluye código para actualizar la interfaz de la barra de salud según la salud actual del jugador. Esto se gestiona mediante tres variables: UIHealthTransform, HealthUIScale y startingHealthUIWidth. A continuación se explica cómo se utilizan estas variables para gestionar la barra de salud.

Script para la barra de salud

// 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();
    }
}

Inicialización en el método Start

En el método Start, se captura y almacena el tamaño inicial de la barra de salud.

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

Actualización de salud en el método GetAttacked

El método GetAttacked actualiza la interfaz de la barra de salud cada vez que el jugador recibe daño.

Reducción de salud:

health -= damage;

La salud del jugador se reduce en la cantidad de daño recibido.

Cálculo de la escala de la barra de salud:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Explicación

Esta línea de código actualiza el ancho de la barra de salud según la salud actual del jugador. Así es como funciona:

Salud: health es un valor flotante que representa la salud actual del jugador. Supongamos que varía de 0 a 100.

Ancho inicial de la barra de salud: startingHealthUIWidth es un valor flotante que representa el ancho inicial de la barra de salud cuando el jugador tiene la salud completa.

Escalado del ancho de la barra de salud: El objetivo es reducir proporcionalmente el ancho de la barra de salud a medida que disminuye la salud del jugador; Para lograr esto, es necesario calcular qué porcentaje de salud le queda al jugador y luego aplicar ese porcentaje al ancho inicial de la barra de salud.

Cálculo paso a paso

Porcentaje de salud restante: Dividir la salud actual entre 100 para obtener un valor entre 0 y 1 que representa el porcentaje de salud restante del jugador. Por ejemplo, si la salud del jugador es 75, health / 100f dará como resultado 0.75. Este cálculo traduce el valor de salud a un formato porcentual adecuado para la representación en la interfaz de usuario.

Aplicar porcentaje al ancho inicial:

Multiplicar el porcentaje de salud restante por el ancho inicial de la barra de salud. Por ejemplo, si el startingHealthUIWidth es 200 (el ancho completo), y la salud del jugador es 75%, el nuevo ancho de la barra de salud será de 150 unidades (0.75 * 200 = 150).

Mediante este cálculo, el ancho de la barra de salud representa de manera dinámica y precisa la salud actual del jugador, proporcionando una retroalimentación visual clara al jugador.

Actualizar la interfaz de la barra de salud:

UIHealthTransform.sizeDelta = HealthUIScale;

Se actualiza el tamaño del RectTransform que representa la barra de salud.

Verificación de muerte del jugador:

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();
}

Si la salud cae a 0 o menos, el jugador se marca como muerto y se activan la animación y las partículas de muerte.

Resumen de la funcionalidad de la barra de salud

Inicialización: El tamaño inicial de la barra de salud se captura al inicio.

Actualización de la barra de salud: Cuando el jugador recibe daño, el valor de salud disminuye y el ancho de la barra de salud se recalcula y actualiza en consecuencia.

Muerte del jugador: Si la salud llega a cero, el jugador se marca como muerto, activando la animación y las partículas de muerte, y finalizando la partida.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 4
some-alt