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).

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

Оновлення інтерфейсу панелі здоров'я:

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 або нижче, гравець позначається як мертвий, і запускаються анімація смерті та частинки.

Підсумок функціональності інтерфейсу панелі здоров'я

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

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

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

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

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

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

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