Цель: создать полосу здоровья с помощью ползунка Unity. Слайд должен содержать текст, отражающий состояние здоровья игрока.
Настройка сцены

У меня есть холст в иерархии с пустым объектом под названием Health Bar Menu. Этот пустой объект содержит объекты фона, заголовка и слайдера.

Настройки слайдера
Для ползунка я скорректировал Handle Slide, отключив изображение ручки и добавив текст, отображающий состояние здоровья игрока. Это заблокирует текстовый объект и будет перемещаться вместе с полосой.


Затем я настроил цвет заливки на зеленый и изменил прямоугольное преобразование области заливки на 0.

Я изменил фон на красный и установил максимальное значение ползунка на 100.

UI-менеджер (скрипт слайдера)
Скрипт слайдера будет ссылаться как на слайдер, так и на текст (HP). При нажатии Q или R это увеличит/уменьшит здоровье игрока с шагом 20.
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class HealBar : MonoBehaviour
{
[SerializeField] private Slider _slider;
[SerializeField] private TMP_Text _hpNumberText;
private float _health = 100;
// Start is called before the first frame update
void Start()
{
_slider.value = _health;
_hpNumberText.text = _health.ToString();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyUp(KeyCode.Q))
{
if (_health > 0)
{
_health -= 20f;
_slider.value = _health;
_hpNumberText.text = _health.ToString();
}
}
if (Input.GetKeyUp(KeyCode.E))
{
if (_health <= 99)
{
_health += 20f;
_slider.value = _health;
_hpNumberText.text = _health.ToString();
}
}
}
}
