Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen UI-Lebensanzeige | Spiel Verbessern
Kampfspiel in Unity
course content

Kursinhalt

Kampfspiel in Unity

Kampfspiel in Unity

1. Unity-Animationssystem
2. Spielerverhalten
3. Feindverhalten
4. Spiel Verbessern
5. Verbessere das Flappy Bird Spiel

book
UI-Lebensanzeige

Die Player-Klasse enthält Code, um die UI-Gesundheitsleiste basierend auf der aktuellen Gesundheit des Spielers zu aktualisieren. Dies wird durch drei Variablen gesteuert: UIHealthTransform, HealthUIScale und startingHealthUIWidth. Im Folgenden wird erläutert, wie diese Variablen zur Verwaltung der Gesundheitsleiste verwendet werden.

Skript für die Gesundheitsleiste

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

Initialisierung in der Start-Methode

In der Start-Methode wird die anfängliche Größe der Gesundheitsleiste erfasst und gespeichert.

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

Gesundheitsaktualisierung in der GetAttacked-Methode

Die GetAttacked-Methode aktualisiert die UI der Gesundheitsleiste, sobald der Spieler Schaden erleidet.

Gesundheitsreduktion:

health -= damage;

Die Gesundheit des Spielers wird um den erlittenen Schaden verringert.

Berechnung der Skalierung der Gesundheitsleiste:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Erklärung

Diese Codezeile aktualisiert die Breite der Gesundheitsleiste basierend auf der aktuellen Gesundheit des Spielers. So funktioniert es:

Gesundheit: health ist ein Float-Wert, der die aktuelle Gesundheit des Spielers darstellt. Angenommen, dieser Wert liegt zwischen 0 und 100.

Anfängliche Breite der Gesundheitsleiste: startingHealthUIWidth ist ein Float-Wert, der die ursprüngliche Breite der Gesundheitsleiste bei voller Gesundheit angibt.

Skalierung der Breite der Gesundheitsleiste: Das Ziel ist es, die Breite der Gesundheitsleiste proportional zur abnehmenden Gesundheit des Spielers zu verringern; Dazu wird berechnet, wie viel Prozent der Gesundheit noch verbleiben, und dieser Prozentsatz wird auf die ursprüngliche Breite der Gesundheitsleiste angewendet.

Schritt-für-Schritt-Berechnung

Prozentsatz der verbleibenden Gesundheit: Teilen Sie die aktuelle Gesundheit durch 100, um einen Wert zwischen 0 und 1 zu erhalten, der den Prozentsatz der verbleibenden Gesundheit des Spielers darstellt. Wenn die Gesundheit des Spielers beispielsweise 75 beträgt, ergibt health / 100f den Wert 0.75. Diese Berechnung wandelt den Gesundheitswert in ein prozentuales Format um, das für die UI-Darstellung geeignet ist.

Prozentsatz auf die Anfangsbreite anwenden:

Multiplizieren Sie den Prozentsatz der verbleibenden Gesundheit mit der Anfangsbreite der Gesundheitsleiste. Wenn beispielsweise die startingHealthUIWidth 200 beträgt (volle Breite) und die Gesundheit des Spielers bei 75 % liegt, beträgt die neue Breite der Gesundheitsleiste 150 Einheiten (0.75 * 200 = 150).

Durch diese Berechnung stellt die Breite der Gesundheitsleiste dynamisch und präzise die aktuelle Gesundheit des Spielers dar und bietet dem Spieler eine klare visuelle Rückmeldung.

Aktualisierung der Gesundheitsleisten-UI:

UIHealthTransform.sizeDelta = HealthUIScale;

Die Größe des RectTransform, das die Gesundheitsleiste darstellt, wird aktualisiert.

Überprüfung auf Spielertod:

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

Wenn die Gesundheit auf 0 oder darunter fällt, wird der Spieler als tot markiert und die Todesanimation sowie Partikeleffekte werden ausgelöst.

Zusammenfassung der Funktionalität der Gesundheitsanzeige

Initialisierung: Die anfängliche Größe der Gesundheitsanzeige wird zu Beginn erfasst.

Aktualisierung der Gesundheitsanzeige: Wenn der Spieler Schaden nimmt, wird der Gesundheitswert verringert und die Breite der Anzeige entsprechend neu berechnet und angepasst.

Spielertod: Erreicht die Gesundheit den Wert Null, wird der Spieler als tot markiert, die Todesanimation und Partikeleffekte werden ausgelöst und das Spiel beendet.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Kampfspiel in Unity

Kampfspiel in Unity

1. Unity-Animationssystem
2. Spielerverhalten
3. Feindverhalten
4. Spiel Verbessern
5. Verbessere das Flappy Bird Spiel

book
UI-Lebensanzeige

Die Player-Klasse enthält Code, um die UI-Gesundheitsleiste basierend auf der aktuellen Gesundheit des Spielers zu aktualisieren. Dies wird durch drei Variablen gesteuert: UIHealthTransform, HealthUIScale und startingHealthUIWidth. Im Folgenden wird erläutert, wie diese Variablen zur Verwaltung der Gesundheitsleiste verwendet werden.

Skript für die Gesundheitsleiste

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

Initialisierung in der Start-Methode

In der Start-Methode wird die anfängliche Größe der Gesundheitsleiste erfasst und gespeichert.

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

Gesundheitsaktualisierung in der GetAttacked-Methode

Die GetAttacked-Methode aktualisiert die UI der Gesundheitsleiste, sobald der Spieler Schaden erleidet.

Gesundheitsreduktion:

health -= damage;

Die Gesundheit des Spielers wird um den erlittenen Schaden verringert.

Berechnung der Skalierung der Gesundheitsleiste:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Erklärung

Diese Codezeile aktualisiert die Breite der Gesundheitsleiste basierend auf der aktuellen Gesundheit des Spielers. So funktioniert es:

Gesundheit: health ist ein Float-Wert, der die aktuelle Gesundheit des Spielers darstellt. Angenommen, dieser Wert liegt zwischen 0 und 100.

Anfängliche Breite der Gesundheitsleiste: startingHealthUIWidth ist ein Float-Wert, der die ursprüngliche Breite der Gesundheitsleiste bei voller Gesundheit angibt.

Skalierung der Breite der Gesundheitsleiste: Das Ziel ist es, die Breite der Gesundheitsleiste proportional zur abnehmenden Gesundheit des Spielers zu verringern; Dazu wird berechnet, wie viel Prozent der Gesundheit noch verbleiben, und dieser Prozentsatz wird auf die ursprüngliche Breite der Gesundheitsleiste angewendet.

Schritt-für-Schritt-Berechnung

Prozentsatz der verbleibenden Gesundheit: Teilen Sie die aktuelle Gesundheit durch 100, um einen Wert zwischen 0 und 1 zu erhalten, der den Prozentsatz der verbleibenden Gesundheit des Spielers darstellt. Wenn die Gesundheit des Spielers beispielsweise 75 beträgt, ergibt health / 100f den Wert 0.75. Diese Berechnung wandelt den Gesundheitswert in ein prozentuales Format um, das für die UI-Darstellung geeignet ist.

Prozentsatz auf die Anfangsbreite anwenden:

Multiplizieren Sie den Prozentsatz der verbleibenden Gesundheit mit der Anfangsbreite der Gesundheitsleiste. Wenn beispielsweise die startingHealthUIWidth 200 beträgt (volle Breite) und die Gesundheit des Spielers bei 75 % liegt, beträgt die neue Breite der Gesundheitsleiste 150 Einheiten (0.75 * 200 = 150).

Durch diese Berechnung stellt die Breite der Gesundheitsleiste dynamisch und präzise die aktuelle Gesundheit des Spielers dar und bietet dem Spieler eine klare visuelle Rückmeldung.

Aktualisierung der Gesundheitsleisten-UI:

UIHealthTransform.sizeDelta = HealthUIScale;

Die Größe des RectTransform, das die Gesundheitsleiste darstellt, wird aktualisiert.

Überprüfung auf Spielertod:

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

Wenn die Gesundheit auf 0 oder darunter fällt, wird der Spieler als tot markiert und die Todesanimation sowie Partikeleffekte werden ausgelöst.

Zusammenfassung der Funktionalität der Gesundheitsanzeige

Initialisierung: Die anfängliche Größe der Gesundheitsanzeige wird zu Beginn erfasst.

Aktualisierung der Gesundheitsanzeige: Wenn der Spieler Schaden nimmt, wird der Gesundheitswert verringert und die Breite der Anzeige entsprechend neu berechnet und angepasst.

Spielertod: Erreicht die Gesundheit den Wert Null, wird der Spieler als tot markiert, die Todesanimation und Partikeleffekte werden ausgelöst und das Spiel beendet.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
some-alt