Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Інтерфейсна Шкала Здоров'я | Покращення гри
Бійцівська гра в Unity
course content

Зміст курсу

Бійцівська гра в Unity

Бійцівська гра в Unity

1. Система анімації Unity
2. Поведінка гравця
3. Поведінка Ворога
4. Покращення гри
5. Покращення гри Flappy Bird

book
Інтерфейсна Шкала Здоров'я

Клас Player містить код для оновлення інтерфейсу смуги здоров'я відповідно до поточного рівня здоров'я гравця. Це здійснюється за допомогою трьох змінних: UIHealthTransform, HealthUIScale та startingHealthUIWidth. Нижче наведено пояснення того, як ці змінні використовуються для керування смугою здоров'я.

Скрипт для смуги здоров'я

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

Ініціалізація в методі Start

У методі Start фіксується та зберігається початковий розмір смуги здоров'я.

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

Оновлення здоров'я в методі GetAttacked

Метод GetAttacked оновлює інтерфейс смуги здоров'я щоразу, коли гравець отримує пошкодження.

Зменшення здоров'я:

health -= damage;

Здоров'я гравця зменшується на величину отриманого пошкодження.

Обчислення масштабу смуги здоров'я:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Пояснення

Цей рядок коду оновлює ширину смуги здоров'я відповідно до поточного рівня здоров'я гравця. Ось як це працює:

Здоров'я: health — це число з плаваючою комою, що відображає поточний рівень здоров'я гравця. Припустимо, воно змінюється від 0 до 100.

Початкова ширина смуги здоров'я: startingHealthUIWidth — це число з плаваючою комою, що відображає початкову ширину смуги здоров'я, коли у гравця повне здоров'я.

Масштабування ширини смуги здоров'я: Мета — пропорційно зменшувати ширину смуги здоров'я зі зменшенням здоров'я гравця; Щоб цього досягти, потрібно обчислити, який відсоток здоров'я залишився у гравця, і застосувати цей відсоток до початкової ширини смуги здоров'я.

Покрокове обчислення

Відсоток залишку здоров'я: Розділіть поточне значення здоров'я на 100, щоб отримати значення від 0 до 1, яке відображає відсоток залишку здоров'я гравця. Наприклад, якщо здоров'я гравця становить 75, вираз health / 100f дасть 0.75. Це обчислення переводить значення здоров'я у формат відсотка, зручний для відображення в інтерфейсі користувача.

Застосування відсотка до початкової ширини:

Помножте відсоток залишку здоров'я на початкову ширину індикатора здоров'я. Наприклад, якщо startingHealthUIWidth дорівнює 200 (повна ширина), а здоров'я гравця становить 75%, нова ширина індикатора здоров'я буде 150 одиниць (0.75 * 200 = 150).

Завдяки цьому обчисленню ширина індикатора здоров'я динамічно та точно відображає поточний стан здоров'я гравця, забезпечуючи чіткий візуальний зворотний зв'язок.

Оновлення UI індикатора здоров'я:

UIHealthTransform.sizeDelta = HealthUIScale;

Оновлюється розмір RectTransform, який представляє індикатор здоров'я.

Перевірка смерті гравця:

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

Якщо здоров'я знижується до 0 або нижче, гравець позначається як мертвий, анімація смерті та частинки активуються.

Підсумок функціоналу UI смуги здоров'я

Ініціалізація: Початковий розмір смуги здоров'я фіксується на старті.

Оновлення смуги здоров'я: Коли гравець отримує ушкодження, значення здоров'я зменшується, і ширина смуги здоров'я перераховується та оновлюється відповідно.

Смерть гравця: Якщо здоров'я досягає нуля, гравець позначається як мертвий, активуються анімація смерті та частинки, а гра завершується.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

course content

Зміст курсу

Бійцівська гра в Unity

Бійцівська гра в Unity

1. Система анімації Unity
2. Поведінка гравця
3. Поведінка Ворога
4. Покращення гри
5. Покращення гри Flappy Bird

book
Інтерфейсна Шкала Здоров'я

Клас Player містить код для оновлення інтерфейсу смуги здоров'я відповідно до поточного рівня здоров'я гравця. Це здійснюється за допомогою трьох змінних: UIHealthTransform, HealthUIScale та startingHealthUIWidth. Нижче наведено пояснення того, як ці змінні використовуються для керування смугою здоров'я.

Скрипт для смуги здоров'я

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

Ініціалізація в методі Start

У методі Start фіксується та зберігається початковий розмір смуги здоров'я.

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

Оновлення здоров'я в методі GetAttacked

Метод GetAttacked оновлює інтерфейс смуги здоров'я щоразу, коли гравець отримує пошкодження.

Зменшення здоров'я:

health -= damage;

Здоров'я гравця зменшується на величину отриманого пошкодження.

Обчислення масштабу смуги здоров'я:

HealthUIScale.x = health * startingHealthUIWidth / 100f;

Пояснення

Цей рядок коду оновлює ширину смуги здоров'я відповідно до поточного рівня здоров'я гравця. Ось як це працює:

Здоров'я: health — це число з плаваючою комою, що відображає поточний рівень здоров'я гравця. Припустимо, воно змінюється від 0 до 100.

Початкова ширина смуги здоров'я: startingHealthUIWidth — це число з плаваючою комою, що відображає початкову ширину смуги здоров'я, коли у гравця повне здоров'я.

Масштабування ширини смуги здоров'я: Мета — пропорційно зменшувати ширину смуги здоров'я зі зменшенням здоров'я гравця; Щоб цього досягти, потрібно обчислити, який відсоток здоров'я залишився у гравця, і застосувати цей відсоток до початкової ширини смуги здоров'я.

Покрокове обчислення

Відсоток залишку здоров'я: Розділіть поточне значення здоров'я на 100, щоб отримати значення від 0 до 1, яке відображає відсоток залишку здоров'я гравця. Наприклад, якщо здоров'я гравця становить 75, вираз health / 100f дасть 0.75. Це обчислення переводить значення здоров'я у формат відсотка, зручний для відображення в інтерфейсі користувача.

Застосування відсотка до початкової ширини:

Помножте відсоток залишку здоров'я на початкову ширину індикатора здоров'я. Наприклад, якщо startingHealthUIWidth дорівнює 200 (повна ширина), а здоров'я гравця становить 75%, нова ширина індикатора здоров'я буде 150 одиниць (0.75 * 200 = 150).

Завдяки цьому обчисленню ширина індикатора здоров'я динамічно та точно відображає поточний стан здоров'я гравця, забезпечуючи чіткий візуальний зворотний зв'язок.

Оновлення UI індикатора здоров'я:

UIHealthTransform.sizeDelta = HealthUIScale;

Оновлюється розмір RectTransform, який представляє індикатор здоров'я.

Перевірка смерті гравця:

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

Якщо здоров'я знижується до 0 або нижче, гравець позначається як мертвий, анімація смерті та частинки активуються.

Підсумок функціоналу UI смуги здоров'я

Ініціалізація: Початковий розмір смуги здоров'я фіксується на старті.

Оновлення смуги здоров'я: Коли гравець отримує ушкодження, значення здоров'я зменшується, і ширина смуги здоров'я перераховується та оновлюється відповідно.

Смерть гравця: Якщо здоров'я досягає нуля, гравець позначається як мертвий, активуються анімація смерті та частинки, а гра завершується.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
some-alt