UnityUGUI之Button防止连续点击 代码
时间: 2024-03-21 08:40:39 浏览: 37
以下是使用协程来延迟按钮的响应时间的示例代码:
```csharp
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class ButtonDelay : MonoBehaviour
{
public Button button;
public float delayTime = 1f;
private bool isClicked = false;
private void Start()
{
button.onClick.AddListener(OnClickButton);
}
private void OnClickButton()
{
if (!isClicked)
{
isClicked = true;
button.interactable = false;
StartCoroutine(ResetButton());
// 执行按钮操作
}
}
private IEnumerator ResetButton()
{
yield return new WaitForSeconds(delayTime);
isClicked = false;
button.interactable = true;
}
}
```
在上述代码中,我们首先在Start方法中添加按钮的点击事件监听器,并在OnClickButton方法中判断按钮是否已经被点击,如果没有则启动协程ResetButton来延迟按钮的响应时间。
在ResetButton协程中,我们使用WaitForSeconds来等待一定的时间后再将按钮重置为可点击状态。值得注意的是,协程中的代码是在另一个线程中执行的,因此我们需要使用isClicked变量来保证在协程执行期间不会多次触发按钮点击事件。