博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity XLua之协程
阅读量:4974 次
发布时间:2019-06-12

本文共 1547 字,大约阅读时间需要 5 分钟。

如何使用xlua实现协程,示例代码如下:

转载请注明出处:

1 local unpack = unpack or table.unpack; 2 local function async_to_sync(async_func, callback_pos) 3     return function(...) 4         local _co = coroutine.running() or error ('this function must be run in coroutine') 5         local rets 6         local waiting = false 7         local function cb_func(...) 8             if waiting then 9                 assert(coroutine.resume(_co, ...))10             else11                 rets = {...}12             end13         end14         local params = {...}15         table.insert(params, callback_pos or (#params + 1), cb_func)16         async_func(unpack(params))17         if rets == nil then18             waiting = true19             rets = {
coroutine.yield()}20 end21 22 return unpack(rets)23 end24 end25 26 -- 异步协程27 local gameobject = CS.UnityEngine.GameObject('XLua_Coroutine_Runner');28 CS.UnityEngine.Object.DontDestroyOnLoad(gameobject);29 local csCoroutineRunner = gameobject:AddComponent(typeof(CS.XLuaCoroutineRunner));30 local function AsyncYieldReturn(toYield, cb)31 csCoroutineRunner:YieldAndCallback(toYield, cb)32 end33 local yieldReturn = async_to_sync(AsyncYieldReturn);34 35 -- 协程36 local co = coroutine.create(function()37 local url = CS.Common.LoadHelp.GetAssetBundleStreamingUrl("xxx.json");38 local www = CS.UnityEngine.WWW(url);39 yieldReturn(www);40 41 local text = www.text;42 print(text);43 end);44 45 coroutine.resume(co);

 

转载于:https://www.cnblogs.com/jietian331/p/10735773.html

你可能感兴趣的文章
分布式锁的三种实现方式
查看>>
poj 2109 pow函数也能这么用?p的开n次方
查看>>
Oracle database link
查看>>
python调用shell小技巧
查看>>
TL431的几种常用用法
查看>>
js 经典闭包题目详解
查看>>
在项目中移除CocoaPods
查看>>
【洛谷】CYJian的水题大赛【第二弹】解题报告
查看>>
POJ 1703 Find them, Catch them【种类/带权并查集+判断两元素是否在同一集合/不同集合/无法确定+类似食物链】...
查看>>
L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
查看>>
Git一分钟系列--快速安装git客户端
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>