习惯了unity3d的协程用法,那么咱们在Unity里面怎么使用:php
StartCoroutinec#
StopCoroutine缓存
WaitForSecondsthis
首先lua也有coroutine,其实lua中的协程真的是暂停,用法和unity并不是相同的概念,个人母的实现就是为了在lua中使用上述和c#统一的协程接口类。lua
在C#端须要写一个接口缓存lua的function而且对其进行计时回调lua的coroutine继续执行或者让这个协程‘dead’掉。3d
组合成2个计时器执行某个方法:code
local gm = {} function gm.startTimer(name,delayTime,func) local one = CreateCoroutine(function (this,name,func) if not WaitForSeconds(this,delayTime,name) then return end if func~=nil then func() end end) StartCoroutine(one,name,func) end function gm.stopTimer(name) StopCoroutine(name) end return gm
GM.startTimer('Chiuan',1.0,function ( ) Debug.Log('hello chiuan.') end) --GM.stopTimer('Chiuan')
http://game.ceeger.com/forum/read.php?tid=18475&fid=16
协程