unity 停止调用InvokeRepeating()的方法

可以使用CancelInvoke()函数来停止InvokeRepeating()的调用。示例如下:

// 声明一个float类型的变量用来存储调用Invokerepeating()的时间间隔
public float repeatTime = 2.0f;

void Start () {
    
    
    // 在Start()函数中调用InvokeRepeating()函数
    InvokeRepeating("RepeatFunction", 0.0f, repeatTime);
}

void Update () {
    
    
    // 在Update()函数中监听按键操作,按下空格键时停止调用InvokeRepeating()
    if (Input.GetKeyDown(KeyCode.Space)) {
    
    
        CancelInvoke("RepeatFunction");
    }
}

void RepeatFunction () {
    
    
    Debug.Log("RepeatFunction is called!");
}

这个示例代码中,首先在Start()函数中调用InvokeRepeating()函数来循环调用一个自定义的函数RepeatFunction(),时间间隔为repeatTime变量的值。然后在Update()函数中监听键盘按键操作,如果检测到用户按下了空格键,就调用CancelInvoke()函数停止InvokeRepeating()的调用。最后在RepeatFunction()函数中实现具体的逻辑,这里简单地输出一段调试信息。

注意:CancelInvoke()函数并不会立即停止InvokeRepeating()的调用,而是在当前循环结束后停止。如果需要立即停止InvokeRepeating()的调用,可以使用CancelInvoke(“RepeatFunction”)的方式来指定具体的函数名。

猜你喜欢

转载自blog.csdn.net/weixin_44919646/article/details/129638546