Unschedule 如何停止一个匿名函数计时器

this.scheduleOnce(()=>{
//do something ;
},5);

我如何停止这个 计时器 这个计时器。

1赞

应该只有这样

有没有像2dx ,我传一个标示的 字符串,然后通过这个 字符串的key 去停止?

可以啊,但是前提是你的计时器函数也要有名字啊,你这里用的匿名函数,没有名字,怎么找到这个计时器函数呢?

//开启计时器
scheduleOnce([&](float dt){
//do thing;
},0.5f,“mark”);

//停止的时候
unschedule(“mark”);

我想说类似这样的用法?

匿名函数定时器没办法停~,你可以把函数赋值给一个变量。。

其实就像楼上的同学说的,你可以这样

this.call = function () {
//do something
}

scheduleOnce(this.call, 1)

停止的时候就是这样

unschedule(this.call);

就可以了

请问我怎么知道一个schedule执行完毕没有啊?比如一个schedule执行20次,然后我要等它完毕之后再执行其他的函数。有没有执行完毕的回调啊?

可以自己在 schedule 回调中做个计数,目前没有其他回调