카테고리 없음

쿨타임 버튼

ruripanda 2024. 8. 31. 09:55

 

Level3 프리팹에 스크립트 할당

#1 버튼 맨 뒤 이미지, 이미지 컴포넌트만 사용하여 세팅

#2 버튼에서 슬라이더 부분을 담당

 

#3 화살표 버튼이 단순히 표시 되기만해도 됨

#4 timer인데 잘모름;;

 

#5 이미지 없이 버튼 입력 경계가 있어도 되며 버튼 입력 처리

스크립트 코드

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class SkillButton : MonoBehaviour
{
    public Button btn;
    public Image filledImage;
    public TMP_Text text;//왜 있는지는 모르는 컴포넌트 할당
    bool bUsable;
    float skillTimer;//스킬타이머(쿨타임)
    // Start is called before the first frame update
    void Start()
    {
        bUsable = true;
        btn.onClick.AddListener(() => {

            if (bUsable)
            {
                bUsable = false;
                skillTimer = 5f;
                StartCoroutine(CoolDown());
            }
        });
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    IEnumerator CoolDown()
    {
        while(true)
        {
            text.text = $"{(int)skillTimer}";
            filledImage.fillAmount = 1f - skillTimer / 5f;
            skillTimer -= Time.deltaTime;
            if (skillTimer <= 0f)
            {
                text.text = "";
                bUsable = true;
                break;
            }
            yield return null;
        }
    }
}