UnityWebRequest的一个小坑
最近在实习,主要的内容是Unity(WebGL),需求是能够从服务器(Proxy)获取数据后展示出来,应该是个蛮简单的任务吧。
Unity提供了一个叫UnityWebRequest的工具类,封装了常用的网络方法。按理来说使用Get
方法就能够很容易得到结果了,但是官网没有怎么await长时间请求的案例,网上抄来的其他代码也不管用。
后来发现问题出在不应该用下载过程中的UnityWebRequest.Result
的错误判断来做while
循环的判断点,不然的话哪怕下载成功了也还是会继续等待。就改成200了。似乎是因为UnityWebRequest会先返回200再解包错误导致的。
完整代码大概是这样:
1 |
|
不过这样一来又有了新的问题,如果下载过程中发生了各种各样错误以至于最后的结果不是200,那该怎么处理呢?每个状态码都添加出来的话会显得极度麻烦难以维护。
总之还是记录下来,毕竟也没找到其他相关的讨论了。
- 2023-6-27更新
不知不觉实习也过去了好久,也早就不用Unity了。回过头看,其实确实是个蛮基础的错误,不过对于只会同步代码刚接触异步的新手来说,Unity的文档还是不太方便的,yield return
的语义也没那么好懂。我当初也花了不少时间去想yield return null
到底是什么意思。
UnityWebRequest的一个小坑
http://inori.moe/2022/10/21/resolved-issue-of-unitywebrequest/