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

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

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

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