Я пытаюсь создать шкалу здоровья для персонажа в игре и хочу разделить ее на несколько меньших полос.
Я работал над этим все утро, но почему-то не могу понять как это сделать. Вот код, который я сделал до сих пор:
/// <summary>
/// UI list for the health bars
/// </summary>
[SerializeField] private List<Slider> healthBars = null;
/// <summary>
/// The health of the boss
/// </summary>
[SerializeField] private Enemy bossLife = null;
private void Awake()
{
InitializeUI();
}
private void LateUpdate()
{
UpdateBossUI();
}
// WIP
private void InitializeUI()
{
int _maxBossHealth = bossLife.maxHealth;
int _totalHeathBars = healthBars.Count;
float _barMaxVal = _maxBossHealth / _totalHeathBars;
for (int i = 0; i < _totalHeathBars; i++)
{
healthBars[i].value = healthBars[i].maxValue = _barMaxVal;
}
lastHealth = _maxBossHealth;
}
private void UpdateBossUI()
{
// Be sure to not update the UI every frame but only if needed
int _currBossHealth = bossLife.CurrentHealth;
if (lastHealth == _currBossHealth)
return;
// Remember when the UI was updated
lastHealth = _currBossHealth;
int _maxBossHealth = bossLife.maxHealth;
int _totalHeathBars = healthBars.Count;
float _barMaxVal = _maxBossHealth / _totalHeathBars;
for (int i = 0; i < _totalHeathBars; i++)
{
if (_currBossHealth > _maxBossHealth - _barMaxVal * (i + 1)
&& _currBossHealth <= _maxBossHealth - _barMaxVal * i)
{
healthBars[i].value = ((_maxBossHealth - (_maxBossHealth / _totalHeathBars)) - _currBossHealth) * -1;
}
}
}
Кто-нибудь, пожалуйста, подайте мне руку помощи? Спасибо