Files
JJBB/Assets/Project/Script/GUI/Base/UIButtonTime.cs
2024-08-23 15:49:34 +08:00

74 lines
1.6 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class UIButtonTime : MonoBehaviour {
public Button _Button;
public Text _BtnText;
private string _BtnOriginStr;
void Awake()
{
_BtnOriginStr = _BtnText.text;
}
void OnEnable()
{
if (_StartTime > 0)
{
if (Time.time - _StartTime > _DisableTime)
{
_Button.interactable = true;
_BtnText.text = _BtnOriginStr;
}
else
{
int startTime = (int)(_DisableTime - (Time.time - _StartTime) + 1);
SetBtnDisableTime(startTime);
}
}
}
// Use this for initialization
void Start ()
{
_BtnText.text = _BtnOriginStr;
}
void OnDisable()
{
StopAllCoroutines();
_Button.interactable = true;
_BtnText.text = _BtnOriginStr;
}
#region interact
private int _disableCountdown;
private float _StartTime;
private float _DisableTime;
public void SetBtnDisableTime(int disableTime)
{
_disableCountdown = disableTime;
_Button.interactable = false;
StartCoroutine(UpdateDisableTime());
_StartTime = Time.time;
_DisableTime = disableTime;
}
private IEnumerator UpdateDisableTime()
{
while (_disableCountdown > 0)
{
_BtnText.text = _BtnOriginStr + "(" + _disableCountdown + "s)";
yield return new WaitForSeconds(1.0f);
_disableCountdown--;
}
_Button.interactable = true;
_BtnText.text = _BtnOriginStr;
}
#endregion
}