fix: 스킬 쿨타임 dimd 영역이 정상적으로 동작하지 않는 오류 수정
This commit is contained in:
@@ -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; // 쿨타임이 없으면 딤드 효과 제거
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user