Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Barre de Santé UI | Améliorer le Jeu
Jeu de Combat dans Unity
course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
Barre de Santé UI

La classe Player comprend du code pour mettre à jour l'interface utilisateur de la barre de santé en fonction de la santé actuelle du joueur. Cette gestion repose sur trois variables : UIHealthTransform, HealthUIScale et startingHealthUIWidth. Vous trouverez ci-dessous une explication de l'utilisation de ces variables pour gérer la barre de santé.

Script pour la barre de santé

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

Initialisation dans la méthode Start

Dans la méthode Start, la taille initiale de la barre de vie est capturée et enregistrée.

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

Mise à jour de la vie dans la méthode GetAttacked

La méthode GetAttacked met à jour l'interface utilisateur de la barre de vie chaque fois que le joueur subit des dégâts.

Réduction de la vie :

health -= damage;

La vie du joueur est diminuée du montant des dégâts subis.

Calcul de l'échelle de la barre de vie :

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Explication

Cette ligne de code met à jour la largeur de la barre de vie en fonction de la vie actuelle du joueur. Voici le fonctionnement :

Vie : health est un flottant représentant la vie actuelle du joueur. Supposons qu'elle varie de 0 à 100.

Largeur initiale de la barre de vie : startingHealthUIWidth est un flottant représentant la largeur initiale de la barre de vie lorsque le joueur a toute sa vie.

Mise à l'échelle de la largeur de la barre de vie : L'objectif est de réduire proportionnellement la largeur de la barre de vie à mesure que la vie du joueur diminue ; Pour cela, il faut calculer le pourcentage de vie restant du joueur puis appliquer ce pourcentage à la largeur initiale de la barre de vie.

Calcul étape par étape

Pourcentage de santé restante : Diviser la santé actuelle par 100 pour obtenir une valeur comprise entre 0 et 1 représentant le pourcentage de santé restant du joueur. Par exemple, si la santé du joueur est de 75, health / 100f donnera 0.75. Ce calcul traduit la valeur de santé en un format de pourcentage adapté à l'affichage dans l'interface utilisateur.

Appliquer le pourcentage à la largeur initiale :

Multiplier le pourcentage de santé restante par la largeur initiale de la barre de santé. Par exemple, si startingHealthUIWidth est 200 (la largeur totale), et que la santé du joueur est à 75 %, la nouvelle largeur de la barre de santé sera de 150 unités (0.75 * 200 = 150).

Grâce à ce calcul, la largeur de la barre de santé représente de manière dynamique et précise la santé actuelle du joueur, offrant ainsi un retour visuel clair au joueur.

Mettre à jour l'UI de la barre de santé :

UIHealthTransform.sizeDelta = HealthUIScale;

La taille du RectTransform représentant la barre de santé est mise à jour.

Vérification de la mort du joueur :

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 santé tombe à 0 ou moins, le joueur est considéré comme mort, et l'animation de mort ainsi que les particules sont déclenchées.

Résumé des fonctionnalités de l'interface de la barre de santé

Initialisation : La taille initiale de la barre de santé est enregistrée au démarrage.

Mise à jour de la barre de santé : Lorsque le joueur subit des dégâts, la valeur de santé diminue et la largeur de la barre de santé est recalculée et mise à jour en conséquence.

Mort du joueur : Si la santé atteint zéro, le joueur est considéré comme mort, ce qui déclenche l'animation de mort, les particules et termine la partie.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

course content

Contenu du cours

Jeu de Combat dans Unity

Jeu de Combat dans Unity

1. Système d'Animation Unity
2. Comportement du Joueur
3. Comportement de l'Ennemi
4. Améliorer le Jeu
5. Améliorer le Jeu Flappy Bird

book
Barre de Santé UI

La classe Player comprend du code pour mettre à jour l'interface utilisateur de la barre de santé en fonction de la santé actuelle du joueur. Cette gestion repose sur trois variables : UIHealthTransform, HealthUIScale et startingHealthUIWidth. Vous trouverez ci-dessous une explication de l'utilisation de ces variables pour gérer la barre de santé.

Script pour la barre de santé

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

Initialisation dans la méthode Start

Dans la méthode Start, la taille initiale de la barre de vie est capturée et enregistrée.

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

Mise à jour de la vie dans la méthode GetAttacked

La méthode GetAttacked met à jour l'interface utilisateur de la barre de vie chaque fois que le joueur subit des dégâts.

Réduction de la vie :

health -= damage;

La vie du joueur est diminuée du montant des dégâts subis.

Calcul de l'échelle de la barre de vie :

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Explication

Cette ligne de code met à jour la largeur de la barre de vie en fonction de la vie actuelle du joueur. Voici le fonctionnement :

Vie : health est un flottant représentant la vie actuelle du joueur. Supposons qu'elle varie de 0 à 100.

Largeur initiale de la barre de vie : startingHealthUIWidth est un flottant représentant la largeur initiale de la barre de vie lorsque le joueur a toute sa vie.

Mise à l'échelle de la largeur de la barre de vie : L'objectif est de réduire proportionnellement la largeur de la barre de vie à mesure que la vie du joueur diminue ; Pour cela, il faut calculer le pourcentage de vie restant du joueur puis appliquer ce pourcentage à la largeur initiale de la barre de vie.

Calcul étape par étape

Pourcentage de santé restante : Diviser la santé actuelle par 100 pour obtenir une valeur comprise entre 0 et 1 représentant le pourcentage de santé restant du joueur. Par exemple, si la santé du joueur est de 75, health / 100f donnera 0.75. Ce calcul traduit la valeur de santé en un format de pourcentage adapté à l'affichage dans l'interface utilisateur.

Appliquer le pourcentage à la largeur initiale :

Multiplier le pourcentage de santé restante par la largeur initiale de la barre de santé. Par exemple, si startingHealthUIWidth est 200 (la largeur totale), et que la santé du joueur est à 75 %, la nouvelle largeur de la barre de santé sera de 150 unités (0.75 * 200 = 150).

Grâce à ce calcul, la largeur de la barre de santé représente de manière dynamique et précise la santé actuelle du joueur, offrant ainsi un retour visuel clair au joueur.

Mettre à jour l'UI de la barre de santé :

UIHealthTransform.sizeDelta = HealthUIScale;

La taille du RectTransform représentant la barre de santé est mise à jour.

Vérification de la mort du joueur :

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 santé tombe à 0 ou moins, le joueur est considéré comme mort, et l'animation de mort ainsi que les particules sont déclenchées.

Résumé des fonctionnalités de l'interface de la barre de santé

Initialisation : La taille initiale de la barre de santé est enregistrée au démarrage.

Mise à jour de la barre de santé : Lorsque le joueur subit des dégâts, la valeur de santé diminue et la largeur de la barre de santé est recalculée et mise à jour en conséquence.

Mort du joueur : Si la santé atteint zéro, le joueur est considéré comme mort, ce qui déclenche l'animation de mort, les particules et termine la partie.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4
some-alt