Arzie100 发表于 2021-8-13 15:13

xlua协程

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

我们要在lua中使用协程:首先引用xlua自带的的util文件
local util = require 'xlua.util'local UnityWebRequest=CS.UnityEngine.Networking.UnityWebRequest
实现及调用:
functionTestCoroutine()return util.cs_generator(function()for i =1,10do
                        coroutine.yield(CS.UnityEngine.WaitForSeconds(3));print("runtime i="..i)endend)end--调用functionStart()
        this.self:StartCoroutine(TestCoroutine());end结果:


Get请求,并传入CallBack进行回调获取get得到的数据text
functionHttpGet(url,CallBack)return util.cs_generator(function()local requestGet = UnityWebRequest.Get(url);
                coroutine.yield(requestGet:SendWebRequest());if(requestGet.isNetworkError or requestGet.isHttpError)thenprint("Get接口网络错误"..requestGet.error);elseCallBack(requestGet.downloadHandler.text);endend)end--调用functionstart()local url ="url";
        this.self:StartCoroutine(TestCoroutine(url,function(text)--.............--对text进行解析--.............end));end
页: [1]
查看完整版本: xlua协程