Цель: создать полосу здоровья с помощью ползунка 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(); } } } }