Unity3D开发小贴士(二)协程(Coroutine)中介绍了在Unity3D中使用协同程序(C#),Lua语法小贴士(八)协同程序中介绍了使用Lua的协同程序。Lua的协同程序功能相对有限,所以ToLua(参考Unity3D开发小贴士(三)愉快的使用Lua开发)帮我们对Lua的协同程序进行了扩展。
具体的文件是ToLua/Lua/System/coroutine.lua。
它对Lua原生的coroutine进行了扩展。
coroutine.start(f, ...)
输入f为函数,...为f所需的参数,返回协程的句柄。与原生的coroutine.create方法相比,为协程增加了一个定时器,使得协程在当前帧的LateUpdate里执行。
coroutine.wait(t, co, ...)
t为秒数,co为协同程序句柄,...为等待结束继续执行时所需要的参数。coroutine.step(t, co, ...)
t为帧数,co为协同程序句柄,...为等待结束继续执行时所需要的参数。coroutine.www(www, co)
www为WWW的对象,co为协同程序句柄(为什么没有参数???),会在WWW下载完毕之后继续协程。coroutine.stop(co)
co为协同程序。会停止协同程序相关的计时器(wait\step\www)。示例:
local co co = coroutine.start(function() print("coroutine") coroutine.wait(1,co) print("wait") end)
作者:ecidevilin 发表于2016/11/16 21:47:14 原文链接
阅读:22 评论:0 查看评论