Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Unity3D开发小贴士(十一)ToLua协同程序

$
0
0

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 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles