IEnumerator ButtonCDRoutine(Ability ability) { int ID = AbilityManager.GetAbilityIndex(ability); if (ability.usedRemained >= 0) { buttonList[ID].label.text = ability.usedRemained.ToString(); } buttonList[ID].button.interactable = false; if (ability.usedRemained == 0) { yield break; } while (true) { string text = ""; float duration = ability.currentCD; if (duration <= 0) { break; } if (duration > 60) { text = Mathf.Floor(duration / 60).ToString("F0") + "m"; } else { text = (Mathf.Ceil(duration)).ToString("F0") + "s"; } buttonList[ID].label.text = text; yield return(new WaitForSeconds(0.05f)); } buttonList[ID].label.text = ""; buttonList[ID].button.interactable = true; }