using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class Skill3 : MonoBehaviour
{
[SerializeField] Button skill3Btn;
[SerializeField] Image prg;
[SerializeField] TMP_Text text;
[SerializeField] int coolTime;
private bool isCoolingDown = false; // 쿨타임 상태
void Start()
{
skill3Btn.onClick.AddListener(() => {
if (!isCoolingDown) // 쿨타임 중이 아닐 때만 코루틴 실행
{
Debug.Log("스킬3 사용");
StartCoroutine(SkillCoolTime(coolTime));
}
});
text.gameObject.SetActive(false);
prg.fillAmount = 0;
}
IEnumerator SkillCoolTime(int coolTime)
{
isCoolingDown = true; // 쿨타임 시작을 나타냄
skill3Btn.interactable = false; // 버튼 비활성화
int maxCoolTime = coolTime;
int currentCoolTime = coolTime;
text.gameObject.SetActive(true);
prg.fillAmount = 1;
text.text = Convert.ToString(currentCoolTime);
yield return new WaitForSeconds(1);
while (currentCoolTime > 1) // 1초 -> 0초(x) , 스킬 활성화
{
currentCoolTime--;
prg.fillAmount = (float)currentCoolTime / maxCoolTime;
text.text = Convert.ToString(currentCoolTime);
yield return new WaitForSeconds(1);
}
prg.fillAmount = 0;
text.gameObject.SetActive(false);
isCoolingDown = false; // 쿨타임 종료를 나타냄
skill3Btn.interactable = true; // 버튼 활성화
}
}
2. 실행 코드
'산대특 > 게임 UIUX프로그래밍' 카테고리의 다른 글
[LearnUGUI] ShopChest 동적 스크롤 뷰 + 데이터 연동 구현 (0) | 2024.02.08 |
---|---|
[LearnUGUI] 상자 이미지 변경하기 (0) | 2024.02.08 |
[LeanUGUI] TabMenu에 DOTween으로 애니메이션 적용하기 (0) | 2024.02.08 |
[LearnGUI] 이름 설정 및 변경과 화면 클릭 시 경험치 획득과 레벨 업 구현 (0) | 2024.02.07 |
[LearnUGUI] 팝업을 통한 이름 변경해보기 (0) | 2024.02.07 |