我使用unity
库在WWW
游戏中获取一些数据。
一段时间后,错误开始出现在统一编辑器中
m_DefaultPriority == 0
UnityEngine.WWW:.ctor
在Unity论坛上,据说当并发WWW
个并发线程太多时会发生这种情况。但是一次最多有3个同时WWW
个线程。
任何人都可以告诉我这个错误的可能原因是什么以及如何解决它。
这是我的连接代码:
IEnumerator Load (ServerRequestData data,float delay=0)
{
if(delay>0)
yield return new WaitForSeconds (delay);
lastCallType = data.requestType;
requestsAwaiting++;
data.timeStamp= System.DateTime.Now.ToString ("yyyy-MM-dd HH:mm:ss:fff");
double time= System.DateTime.Now.TimeOfDay.TotalMilliseconds;
WWW www;
if (data.requestFrom != null){
www = new WWW (data.requestUrl, data.requestFrom);
}else{
www = new WWW (data.requestUrl);//Get request
}
this.concurrentWWWThreads++;
yield return www;
requestsAwaiting--;
AfterResponse(www,data,time);
www.Dispose();
www=null;
this.concurrentWWWThreads--;
}
由于
答案 0 :(得分:0)
而不是使用WWW
,而是使用UnityWebRequest
。下面的代码会将您的WWW
加载函数转换为新的Unity Web API。由于您的原始代码不完整,我无法对其进行测试,因此可能无效。如果不起作用,您可能需要进行一些修改。
IEnumerator Load(ServerRequestData data, float delay = 0)
{
if (delay > 0)
yield return new WaitForSeconds(delay);
lastCallType = data.requestType;
requestsAwaiting++;
data.timeStamp = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff");
double time = System.DateTime.Now.TimeOfDay.TotalMilliseconds;
UnityWebRequest www;
if (data.requestFrom != null)
{
www = UnityWebRequest.Post(data.requestUrl, data.requestFrom);
}
else
{
www = UnityWebRequest.Get(data.requestUrl);
}
this.concurrentWWWThreads++;
yield return www.Send();
if (www.isError)
{
Debug.Log("Error Occoured: " + www.error);
}
else
{
Debug.Log("Successfully Uploaded Form!");
}
requestsAwaiting--;
AfterResponse(www, data, time);
www.Dispose();
www = null;
this.concurrentWWWThreads--;
}