🏆 导航菜单
🎪 扩展内容
🎯 沙盘引擎文档
🕹️ 文章及书籍&教程
🎖️ 外部的链接
🏆 导航菜单
🎪 扩展内容
🎯 沙盘引擎文档
🕹️ 文章及书籍&教程
🎖️ 外部的链接
计时器是开发阶段常用功能,可进行等待指定时间\间隔几次执行某段代码。
计时器实例在【切换世界\地图】时将会重置(切换世界前创建的计时器,在加载新世界时将会被清空)。
获取当前计时器设定的函数(只读)。
获取当前计时器设定的秒数(只读)。
获取当前计时器上次创建\执行的时间(只读)。
获取当前计时器设定的重复次数(只读)。
如果设置为0则表示无限重复。
获取当前计时器已经重复过的次数(只读)。
设置当前计时器设定的标签,默认为null
。
Tag标签仅有筛选的功能作用,如果不需要使用Timer.Find()
功能可以忽略。
获取当前时间(Timer所用的时间单位,以秒为单位,并非现实时间)。
扩展:可通过用Timer.GetRealTime() - myTimer.LastTime
获取某个timer下次执行剩余时间。
function Timer.GetRealTime(): float
新建一个计时器,定时\定次执行指定代码。
如果repeat == 0
则表示无限重复计时器。
特别注意:Timer
代码可能在延迟后的不同的阶段执行,请注意执行时检查相关引用是否存在(因为有可能在此期间,某些引用已经失效,导致空指针异常)。
function Timer.Create( action: Action, time: float, repeat: int = 1, tag: string = null ): Timer //返回Timer实例,可引用
Timer.Create(() => { DLog("Output in one second!"); }, 1); Timer.Create(() => { DLog("Output in one second. Output three times!"); }, 1, 3);
关闭一个计时器,销毁实例。
function Timer.Remove( timer: Timer ): bool
let myTimer = Timer.Create(() => { DLog("间隔一秒后,输出这段话"); }, 1); if(myTimer != null) Timer.Remove(myTimer);
根据Tag
标识查找一个计时器,返回找到满足条件的第一个计时器。
此功能需要搭配timer.SetTag()
等方法,设置标签配合使用。
function Timer.Find( tag: string ): Timer
Timer.Create(() => { DLog("间隔一秒后,输出这段话"); }, 1).SetTag("myTimer"); //这里也可以.Tag = "myTimer",或直接在Timer.Create()末尾参数填写tag,作用相同 let findTimer = Timer.Find("myTimer"); if(findTimer != null) Timer.Remove(myTimer);
为指定Timer设置一个标签,以供Timer.Find()
识别使用。
需求简单等情况可使用此方式,如果有较多实例的情况下,建议使用变量储存的方式,而不是动态寻找Tag。
function timer.SetTag( tag: string )