asqbtcupid / unreal.lua

lua solution for UnrealEngine4
MIT License
300 stars 98 forks source link

请问TimerMgr怎么使用的,我想计时到一定时间回调 #24

Closed moozen-cn closed 6 years ago

asqbtcupid commented 6 years ago

TimerMgr:Get():On(func, p1,p2,...):Time(t) 在t秒后回调func(p1,p2,p3,...,delta) TimerMgr:Get():On(func, p1,p2,...):Time(t):Num(n) 回调n次后销毁

moozen-cn commented 6 years ago

我这样写有什么问题么,就是不触发,加个Fire()立即触发了 TimerMgr:Get():On(CBUpdate):Time(2):Num(5)

function CBUpdate() print("CBUpdate") end

moozen-cn commented 6 years ago

我在加了一句但是没打印 是没启动定时器么 function Tick(delta) print("main.lua Tick") local function f() TimerMgr:Get():Tick(delta) end Xpcall(f) end

asqbtcupid commented 6 years ago

你是在demo上试的,还是改代码了? 你的写法没问题啊

moozen-cn commented 6 years ago

找到原因了,这句代码被注释了

LuaStaticCall("Tick", DeltaTime);

TimerMgr没有计时功能,需要UE4里的滴答来驱动对吧

asqbtcupid commented 6 years ago

你要明白lua本身不具备任何自发的逻辑,全部由c++来驱动