协程在unity中是一个很常用的方法,我们可以利用协程使代码看起来更连贯,易于理解。xlua在示例6中提供了一个协程的示例。
local util = require 'xlua.util'
local gameobject = CS.UnityEngine.GameObject('Coroutine_Runner')
CS.UnityEngine.Object.DontDestroyOnLoad(gameobject)
local cs_coroutine_runner = gameobject:AddComponent(typeof(CS.Coroutine_Runner))
local function async_yield_return(to_yield, cb)
cs_coroutine_runner:YieldAndCallback(to_yield, cb)
end
return {
yield_return = util.async_to_sync(async_yield_return)
}