—
18:55
258

Создай в Unity 3d бар здоровья

Ниже приведена пошаговая инструкция, как создать простой и функциональный бар здоровья (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 — увеличиваться.

—
18:55
258
0
Rundi Max Rundi Max 9 месяцев назад #

Я не смог, все этапы проделать

> Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.