xlua协程

1 篇文章 0 订阅
这篇博客介绍了如何在Lua中利用xlua库和UnityWebRequest进行协程操作,如实现延时和网络请求。通过`util.cs_generator`创建协程,用于执行Get请求并传递回调函数处理返回数据。示例代码展示了如何发起Get请求,处理网络错误,并在成功时调用回调函数处理响应文本。
摘要由CSDN通过智能技术生成

在unity中我们经常会使用协程来实现一些功能,例如Get,Post请求,延时等功能。

我们要在lua中使用协程:首先引用xlua自带的的util文件

local util = require 'xlua.util'
local UnityWebRequest=CS.UnityEngine.Networking.UnityWebRequest

在这里插入图片描述
实现及调用:

function TestCoroutine()
	return util.cs_generator(function()
		for i = 1,10 do
			coroutine.yield(CS.UnityEngine.WaitForSeconds(3));
			print("runtime i="..i)
		end
	end
	)
end
--调用
function Start()
	this.self:StartCoroutine(TestCoroutine());
end

结果:
在这里插入图片描述
Get请求,并传入CallBack进行回调获取get得到的数据text

function HttpGet(url,CallBack)
	return util.cs_generator(function()
		local requestGet = UnityWebRequest.Get(url);
		coroutine.yield(requestGet:SendWebRequest());
		if(requestGet.isNetworkError or requestGet.isHttpError)then
			print("Get接口网络错误"..requestGet.error);
		else
			CallBack(requestGet.downloadHandler.text);
		end
	end
	)
end
--调用
function start()
	local url = "url";
	this.self:StartCoroutine(TestCoroutine(url,function(text)
		--.............
		--对text进行解析
		--.............
	end));
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值