5 lua coroutine
TestLuaCoroutine.lua:
function fib(n)
local a, b = 0, 1
while n > 0 do
a, b = b, a + b
n = n - 1
end
return a
end
function CoFunc()
print('Coroutine started')
print("begin frameCount: "..Time.frameCount)
for i = 0, 10, 1 do
print(fib(i))
coroutine.wait(0.1)
end
print("current frameCount: "..Time.frameCount)
coroutine.step()
print("yield frameCount: "..Time.frameCount)
local www = UnityEngine.WWW("https://www.baidu.com")
coroutine.www(www)
print("after www frameCount: "..Time.frameCount)
local s = tolua.tolstring(www.bytes)
print(s:sub(1, 8))
print('Coroutine ended')
end
function TestCortinue()
coroutine.start(CoFunc)
end
local coDelay = nil
function Delay()
local c = 1
while true do
coroutine.wait(1)
print("Count: "..c)
c = c + 1
end
end
function StartDelay()
coDelay = coroutine.start(Delay)
end
function StopDelay()
coroutine.stop(coDelay)
end
lua中协程的使用:
协程函数的开启 : coroutine.start(协程函数)
协程函数的挂起: coroutine.step() 协同中等待一帧