fix: 스킬 쿨타임 dimd 영역이 정상적으로 동작하지 않는 오류 수정

This commit is contained in:
aube.lee
2025-03-17 23:15:57 +09:00
parent 4a97375d4d
commit 9127ae8ff2
7 changed files with 104 additions and 96 deletions

View File

@@ -14,20 +14,13 @@ namespace TON
[SerializeField] private GameObject skillIcon;
[SerializeField] private GameObject lockImage;
public SkillBase skillBase;
public SkillBase skillBase { get; private set; }
public void Initalize(SkillBase skillData)
{
if (skillData != null)
{
skillData.OnSkillExecuted -= OnSkillExecuted;
// skillData.OnCooldownCompleted -= OnCooldownCompleted;
}
// 직접 주어진 skillData 인스턴스 사용
skillBase = skillData;
skillData.OnSkillExecuted += OnSkillExecuted;
// skillData.OnCooldownCompleted += OnCooldownCompleted;
skillIcon.SetActive(true);
@@ -36,12 +29,6 @@ namespace TON
skillIcon.GetComponent<Image>().sprite = loadedSkillImage;
lockImage.SetActive(false);
}
}
private void OnSkillExecuted()
{
UpdateCooldownUI();
}
private void UpdateCooldownUI()
@@ -50,13 +37,27 @@ namespace TON
{
return; // UI가 삭제되었으면 업데이트 중단
}
coolTimeText.gameObject.SetActive(skillBase.CurrentCoolDown > 0); // 남은 쿨타임이 있을 때만 표시
if (coolTimeText.IsActive())
if (skillBase == null)
{
coolTimeText.text = $"{skillBase.CurrentCoolDown: 0}s"; // 정수 초단위 표시
coolTimeDimd.fillAmount = skillBase.CurrentCoolDown / skillBase.SkillCoolDown; // 1 → 0 으로 감소
return;
}
SkillBase targetSkill = SkillDataManager.Singleton.GetEquippedSkillFromId(skillBase.SkillData.id);
// 현재 쿨타임 상태 로그
// Debug.Log($"Skill: {skillBase.SkillData.id}, CurrentCoolDown: {targetSkill.CurrentCoolDown}, SkillCoolDown: {targetSkill.SkillCoolDown}");
// 남은 쿨타임이 있을 때만 표시
coolTimeText.gameObject.SetActive(targetSkill.CurrentCoolDown > 0);
if (targetSkill.CurrentCoolDown > 0)
{
coolTimeText.text = $"{targetSkill.CurrentCoolDown:0.0}s"; // 소수점 한 자리까지 표시
coolTimeDimd.fillAmount = targetSkill.CurrentCoolDown / targetSkill.SkillCoolDown; // 1 → 0 으로 감소
}
else
{
coolTimeDimd.fillAmount = 0; // 쿨타임이 없으면 딤드 효과 제거
}
}