在unity中使用C#实现点击按钮重复执行函数 再次点击按钮取消重复执行函数
时间: 2024-03-12 11:50:06 浏览: 26
好的,我来回答你的问题。实现点击按钮重复执行函数的方法是使用Unity中的Coroutine协程。你可以在按钮的OnClick事件中调用一个协程函数,然后在协程函数中使用yield return new WaitForSeconds()来实现等待一段时间后再次执行函数。取消重复执行的方法是在按钮的OnClick事件中判断协程是否在执行,如果是,则停止协程,如果不是,则开始执行协程。以下是示例代码:
```csharp
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class ButtonController : MonoBehaviour
{
public Button button;
public float repeatTime = 1f; // 重复执行时间间隔
private bool isRepeating = false; // 是否正在重复执行
private IEnumerator coroutine;
void Start()
{
button.onClick.AddListener(OnClickButton);
}
void OnClickButton()
{
if (isRepeating)
{
StopCoroutine(coroutine);
isRepeating = false;
}
else
{
coroutine = RepeatFunction();
StartCoroutine(coroutine);
isRepeating = true;
}
}
IEnumerator RepeatFunction()
{
while (true)
{
Debug.Log("Repeat Function");
yield return new WaitForSeconds(repeatTime);
}
}
}
```
希望能帮到你!