Інтерфейсна шкала здоров'я
Клас Player включає код для оновлення інтерфейсу смуги здоров'я на основі поточного здоров'я гравця. Це керується за допомогою трьох змінних: UIHealthTransform
, HealthUIScale
та startingHealthUIWidth
. Нижче наведено пояснення, як ці змінні використовуються для управління смугою здоров'я.
Скрипт для смуги здоров'я
// Initialization in Start methodprivate void Start(){HealthUIScale = UIHealthTransform.sizeDelta;startingHealthUIWidth = HealthUIScale.x;}// Updating health in GetAttacked methodpublic 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 або нижче, гравець позначається як мертвий, і запускаються анімація смерті та частинки.
Підсумок функціональності інтерфейсу панелі здоров'я
Ініціалізація: Початковий розмір панелі здоров'я фіксується на початку.
Оновлення панелі здоров'я: Коли гравець отримує пошкодження, значення здоров'я зменшується, і ширина панелі здоров'я перераховується та оновлюється відповідно.
Смерть гравця: Якщо здоров'я досягає нуля, гравець позначається як мертвий, запускаються анімація смерті та частинки, і гра завершується.
Дякуємо за ваш відгук!