c#中使用tolua中的协程方法和获取全局函数方法一致,主要是在lua中编写协程逻辑。
需要注意的是,tolua的协程逻辑都是toLua帮我们实现的,并不是lua中的协程。
1、在lua中编写协程程序
--lua协程相关
local coDelay = nil
--开启协程
StartDelay = function ()
coDelay = coroutine.start(Delay)
end
--协程
Delay = function ()
local c = 1
while true do
--等待1秒,执行一次逻辑
coroutine.wait(1);
print("Count: "..c)
c = c+1
if c>=5 then
StopDelay()
break
end
end
end
--停止协程
StopDelay = function()
coroutine.stop(coDelay)
end
2、在c#中获取开启携程的函数并开启协程
LuaFunction function = LuaMgr.GetInstance().LuaState.GetFunction("StartDelay");
function.Call();
function.Dispose();