using System;
using UnityEngine;
using UnityEngine.UI;
public class Nexus : Unit
{
public Action OnDestroyNexus;
public Action OnDamagedNexus;
public Action OnHealedNexus;
public NexusSO Data;
public Slider healthSlider; // Unity Inspector에서 설정하기 위한 Slider 변수
private float timeSinceLastHeal;
private float healInterval = 1f;
private void Update()
{
timeSinceLastHeal += Time.deltaTime;
if (timeSinceLastHeal >= healInterval)
{
Healed(5); // 여기서 수치 조절 가능
OnHealedNexus?.Invoke();
timeSinceLastHeal = 0f;
}
// CurrnetHP를 Slider에 반영
if (healthSlider != null)
{
healthSlider.value = CalculateHealthPercentage();
}
}
private void Awake()
{
if (Data != null)
{
MaxHP = Data.MaxHP();
CurrnetHP = MaxHP;
}
}
public override void Damaged(int dmg)
{
base.Damaged(dmg);
if (CurrnetHP <= 0)
{
OnDestroyNexus?.Invoke();
Destroy(this.gameObject);
}
OnDamagedNexus?.Invoke();
}
public override void Healed(int heal)
{
base.Healed(heal);
OnHealedNexus?.Invoke();
}
// 현재 체력의 백분율을 계산
private float CalculateHealthPercentage()
{
return(float) CurrnetHP / MaxHP;
}
}
체력 슬라이드를 적용 시키기 위해 슬라이더를 만들고 스크립트를 수정해 줬습니다.
return(float) CurrnetHP / MaxHP; 여기에서 return"(float)" 를 추가해줬더니 제대로 잘 적용됐습니다.

이렇게 만든 슬라이더를 적용시켜주고

벨류를 1로 설정해주면 넥서스체력이 닳는 순간 슬라이더도 줄어들게 됩니다.