Ниже приведена пошаговая инструкция, как создать простой и функциональный бар здоровья (Health Bar) в Unity 3D.
————————
✏ Шаг 1: Создаем UI-элементы
1. В Unity в меню Hierarchy нажмите правой кнопкой мыши и выберите:
⦁ UI → Canvas (если его ещё нет)
⦁ Внутри Canvas создайте UI элемент UI → Image, это будет рамка или фон для бара здоровья.
⦁ Внутри этого Image создайте ещё один Image — он будет заполнением (fill) здоровья.
2. Для удобства переименуйте:
⦁ Родительский Image в HealthBarBackground
⦁ Внутренний Image в HealthBarFill
3. Настройте размеры и расположение элементов, чтобы они выглядели как прямоугольный бар. Например, сделайте HealthBarBackground шириной 200 и высотой 20 пикселей.
————————
✏ Шаг 2: Настройка HealthBarFill
1. В инспекторе у элемента HealthBarFill в компоненте Image:
⦁ Поставьте тип изображения (Image Type) в Filled
⦁ В Fill Method выберите Horizontal
⦁ Fill Origin — слева (по умолчанию)
⦁ Fill Amount установите в 1 (100%) — пока у нас полное здоровье.
Это позволит изменять заполненность бара, плавно уменьшая или увеличивая его длину.
————————
✏ Шаг 3: Создаем скрипт для управления здоровьем и обновления бара
Создайте новый C# скрипт, например, HealthBar.cs и добавьте в него следующий код:
using UnityEngine;
using UnityEngine.UI;
public class HealthBar: MonoBehaviour
{
[SerializeField] private Image healthFillImage;
[SerializeField] private float maxHealth = 100f;
private float currentHealth;
private void Start()
{
currentHealth = maxHealth;
UpdateHealthBar();
}
public void TakeDamage(float damage)
{
currentHealth -= damage;
currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);
UpdateHealthBar();
}
public void Heal(float amount)
{
currentHealth += amount;
currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);
UpdateHealthBar();
}
private void UpdateHealthBar()
{
if (healthFillImage != null)
{
healthFillImage.fillAmount = currentHealth / maxHealth;
}
}
}
✏ Шаг 4: Настраиваем связь с UI
1. Прикрепите скрипт HealthBar на объект HealthBarBackground (или на любой пустой объект в сцене).
2. В инспекторе -> у HealthBar скрипта в поле Health Fill Image перетащите элемент HealthBarFill.
————————
✏ Шаг 5: Тестирование
Для тестирования вы можете добавить другой скрипт, который будет наносить урон при нажатии клавиши:
using UnityEngine;
public class HealthTester: MonoBehaviour
{
public HealthBar healthBar;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
healthBar.TakeDamage(10);
}
if (Input.GetKeyDown(KeyCode.H))
{
healthBar.Heal(10);
}
}
}
⦁ Создайте пустой объект, прикрепите на него этот скрипт.
⦁ В инспекторе перетащите туда ваш объект с HealthBar.
Теперь при нажатии пробела здоровье будет уменьшаться, а при нажатии H — увеличиваться.
Сайта... Я Дмитрий Исаев , 89 года рождения. Увлекаюсь играми, пробовал делать игры, об этом в иоём блоге личном.