定时回调系统_第二章
在画布创建3个按钮,分别是添加,删除,替换
各个按钮绑定功能:
点击添加任务
点击,添加回调正常触发
方便测试删除和替换功能,把计数器改成0,变成循环任务
重新运行,点击添加任务,进入循环
点击删除任务,提示true,循环任务中止
重新运行,点击替换按钮,成功替换 2秒后,任务完成
开始弄 先整一个帧任务的类,包含唯一id,回调,目标帧(整数),延迟帧(整数),计数器
构造函数
整一个帧任务处理的region
先声明帧任务的列表,还有整型帧数
在帧任务的region里,先加一个添加帧任务的方法 加到帧缓存任务列表 目标帧是当前帧加上延迟帧
继续整一个删除任务的函数方法 还是先声明一个是否存在的布尔 然后,遍历任务列表,确认tid是否存在,如果存在,就移除对应的任务就好
如果在帧任务列表找不到,也有可能是在帧缓存任务列表 也是遍历一遍就好 返回是否存在
写一个 替换帧任务的功能接口 先创建一个新的帧任务,然后根据tid遍历帧任务列表,如果有满足条件的,替换就好
也有可能是在帧任务缓存列表,也是遍历帧任务缓存列表,然后替换就好 最后返回是否替换成功的布尔
写一个添加帧任务 按钮接口
继续,删除帧任务,替换帧任务 按钮接口
弄一个检测帧任务是否达成的函数接口,先把缓冲区的帧任务弄到帧任务列表 清空缓冲帧任务列表 帧数自增 遍历帧任务列表,达到目标帧的,就通过try catch 执行回调,如果条件没满足就continue下一个
然后,移除已完成的帧任务 跟时间任务的处理,逻辑相同
在Update调用
复制几个新的添加、删除、替换 按钮,对应帧任务相关 隐藏原本旧的
换一下添加按钮调用的api接口 其他同理
运行游戏,点添加任务
因为是循环任务,所以会一直打印
删除功能 相关打印信息
替换功能 相关打印信息
逻辑都正常