找回密码
 立即注册
查看: 314|回复: 0

xlua协程

[复制链接]
发表于 2021-8-13 15:13 | 显示全部楼层 |阅读模式
在unity中我们经常会使用协程来实现一些功能,例如Get,Post请求,延时等功能。

我们要在lua中使用协程:首先引用xlua自带的的util文件
  1. local util = require 'xlua.util'local UnityWebRequest=CS.UnityEngine.Networking.UnityWebRequest
复制代码

实现及调用:
  1. functionTestCoroutine()return util.cs_generator(function()for i =1,10do
  2.                         coroutine.yield(CS.UnityEngine.WaitForSeconds(3));print("runtime i="..i)endend)end--调用functionStart()
  3.         this.self:StartCoroutine(TestCoroutine());end
复制代码
结果:


Get请求,并传入CallBack进行回调获取get得到的数据text
  1. functionHttpGet(url,CallBack)return util.cs_generator(function()local requestGet = UnityWebRequest.Get(url);
  2.                 coroutine.yield(requestGet:SendWebRequest());if(requestGet.isNetworkError or requestGet.isHttpError)thenprint("Get接口网络错误"..requestGet.error);elseCallBack(requestGet.downloadHandler.text);endend)end--调用functionstart()local url ="url";
  3.         this.self:StartCoroutine(TestCoroutine(url,function(text)--.............--对text进行解析--.............end));end
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 08:46 , Processed in 0.088605 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表