从服务器下载纹理时出错m_InstanceID != 0
Error m_InstanceID != 0 when downloading texture from the server
我在 Unity 5.4 中尝试从服务器下载纹理时遇到此错误。
这是代码(link 应该有效):
UnityWebRequest www = UnityWebRequest.GetTexture("https://0.gravatar.com/avatar/fc2beef90fad49f83d79650a10b5c030?s=256&d=identicon&r=G");
www.SetRequestHeader("Accept", "image/*");
async = www.Send();
while (!async.isDone)
yield return null;
if (www.isError) {
Debug.Log(www.error);
} else {
tex = DownloadHandlerTexture.GetContent(www); // <-------------------
}
错误如下所示:
m_InstanceID != 0
UnityEngine.Networking.DownloadHandlerTexture:GetContent(UnityWebRequest)
这是一个错误。当 www.isDone
或 async.isDone
与 DownloadHandlerTexture
一起使用时会发生这种情况。
解决方法是在调用 DownloadHandlerTexture.GetContent(www);
.
之前使用 yield return null;
或 yield return new WaitForEndOfFrame()
等待另一帧
UnityWebRequest www = UnityWebRequest.GetTexture("https://0.gravatar.com/avatar/fc2beef90fad49f83d79650a10b5c030?s=256&d=identicon&r=G");
www.SetRequestHeader("Accept", "image/*");
async = www.Send();
while (!async.isDone)
yield return null;
if (www.isError)
{
Debug.Log(www.error);
}
else
{
//yield return null; // This<-------------------
yield return new WaitForEndOfFrame(); // OR This<-------------------
tex = DownloadHandlerTexture.GetContent(www);
}
虽然,我不知道这有多可靠。除非进行彻底的测试,否则我不会在商业产品中使用它。
一个可靠的解决方案是提交有关 www.isDone
的错误,然后不要使用 www.isDone
。使用 yield return www.Send();
直到解决此问题。
UnityWebRequest www = UnityWebRequest.GetTexture("https://0.gravatar.com/avatar/fc2beef90fad49f83d79650a10b5c030?s=256&d=identicon&r=G");
www.SetRequestHeader("Accept", "image/*");
yield return www.Send(); // This<-------------------
if (www.isError)
{
Debug.Log(www.error);
}
else
{
tex = DownloadHandlerTexture.GetContent(www);
}
我在 Unity 5.4 中尝试从服务器下载纹理时遇到此错误。
这是代码(link 应该有效):
UnityWebRequest www = UnityWebRequest.GetTexture("https://0.gravatar.com/avatar/fc2beef90fad49f83d79650a10b5c030?s=256&d=identicon&r=G");
www.SetRequestHeader("Accept", "image/*");
async = www.Send();
while (!async.isDone)
yield return null;
if (www.isError) {
Debug.Log(www.error);
} else {
tex = DownloadHandlerTexture.GetContent(www); // <-------------------
}
错误如下所示:
m_InstanceID != 0
UnityEngine.Networking.DownloadHandlerTexture:GetContent(UnityWebRequest)
这是一个错误。当 www.isDone
或 async.isDone
与 DownloadHandlerTexture
一起使用时会发生这种情况。
解决方法是在调用 DownloadHandlerTexture.GetContent(www);
.
yield return null;
或 yield return new WaitForEndOfFrame()
等待另一帧
UnityWebRequest www = UnityWebRequest.GetTexture("https://0.gravatar.com/avatar/fc2beef90fad49f83d79650a10b5c030?s=256&d=identicon&r=G");
www.SetRequestHeader("Accept", "image/*");
async = www.Send();
while (!async.isDone)
yield return null;
if (www.isError)
{
Debug.Log(www.error);
}
else
{
//yield return null; // This<-------------------
yield return new WaitForEndOfFrame(); // OR This<-------------------
tex = DownloadHandlerTexture.GetContent(www);
}
虽然,我不知道这有多可靠。除非进行彻底的测试,否则我不会在商业产品中使用它。
一个可靠的解决方案是提交有关 www.isDone
的错误,然后不要使用 www.isDone
。使用 yield return www.Send();
直到解决此问题。
UnityWebRequest www = UnityWebRequest.GetTexture("https://0.gravatar.com/avatar/fc2beef90fad49f83d79650a10b5c030?s=256&d=identicon&r=G");
www.SetRequestHeader("Accept", "image/*");
yield return www.Send(); // This<-------------------
if (www.isError)
{
Debug.Log(www.error);
}
else
{
tex = DownloadHandlerTexture.GetContent(www);
}