2016-09-22 21 views
1

サーバからテクスチャをダウンロードしようとするとUnity 5.4にこのエラーが発生します。サーバからテクスチャをダウンロードするときにエラーm_InstanceID!= 0が発生する

 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) 

答えて

1

これはバグです。ここ

は、(リンクが機能しなければならない)コードです。 DownloadHandlerTexturewww.isDoneまたは async.isDoneを使用すると発生します。

yield return null;またはyield return new WaitForEndOfFrame()で別のフレームを待つことは、DownloadHandlerTexture.GetContent(www);を呼び出す前に回避することです。

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);  
} 
+0

解決方法を試しましたか?私はいくつかのjsonデータを読み込むために同じパターンを使います。うまく動くので、テクスチャの読み込みが途切れるだけです。私はあなたに解決策を試し、今夜後で報告します – serge

+0

私はあなたが答えを読んでいるとは思わない。 「DownloadHandlerTextureでwww.isDoneまたはasync.isDoneを使用すると発生します。テクスチャでは発生しますが、テキストデータでは発生しません。問題は 'isError'が終了していないときに終了したと報告することです。私たちの時間を節約するために答えを試した後にだけコメントを書くことは良いことです。 – Programmer

+0

私は答えを理解しましたが、私はそれがただDownloadHandlerTextureを壊すことに驚いています。 – serge

関連する問題