【发布时间】:2015-11-27 17:16:59
【问题描述】:
我正在 Unity 中构建一个策略游戏,它使用 HTTP 与服务器通信,通过 WWW 请求检索 JSON 对象。到目前为止它工作正常,但是最近我添加了一个遇到奇怪问题的测试人员。注册过程调用的 URL 之一挂在 IEnumerator 的“yield return www”处。用户尝试了两台不同的机器和两个不同的互联网提供商,这表明这不是环境问题。
IEnumerator 代码如下:
IEnumerator WaitForRequest(WWW www)
{
addLogEntry("IEnumerator: "+www.url);
yield return www;
if (www.error == null)
{
addLogEntry("IEnumerator: " + www.url+" no error");
// do stuff
}
else
{
addLogEntry("IEnumerator: " + www.url + " " + www.error);
Debug.Log("WWW Error: " + www.error);
}
}
url 为所有用户返回相同的值,只有一个有这个问题。服务器端没有错误,也没有连接问题,因为所有其他 url 在同一台机器和客户端上运行速度很快。
有谁知道什么会导致这种行为?
【问题讨论】:
-
如果他只访问特定的 URL 会发生什么?
-
我没试过,因为没那么简单,需要POST数据,所以不能准确告诉他放到浏览器中。不过这是一个好点,我必须检查一下,谢谢!
-
是的,这有点问题,但我确实会使用另一段代码或 CURL 或其他任何东西来设置一些东西,看看问题是否仍然存在于您的代码之外。特别是对于这样一个关闭。
-
我会检查的。我有一个关于这个问题的理论,但我看不到两个事件相关联。这个 URL 唯一不同的是,其余的工作正常,这是在启动 iTween 动画时同时加载的(我有两个 onClick 监听器附加到一个按钮,一个启动动画,另一个加载另一个网址)。我看不出 iTween 会如何影响另一个类中的 IEnumerator,但这是我能看到的唯一区别,什么有效,什么无效。
-
我认为 iTween 不会造成任何问题。您可以通过禁用该动画来确认它。如果您可以使用 curl 输出或其他工具(例如 requestmaker.com)的输出进行报告,那就太好了(感谢 Google)。