2016-12-22 17 views
0

サーバからUnity WebGLアプリケーションに画像をダウンロードしようとしています。私はWWWを使っていましたが、動作しますが、ダウンロード中にWebGLアプリケーション全体がフリーズするという問題があります。この単純なコードは機能しますが、画像をダウンロードしている間はアプリケーションを停止します。私はすでにその代わり、私はダウンロードして、ブラウザを伝えるために団結のためにその可能かどうかを確認したい、それ以来、どちらかフリーズした画像をダウンロードしたり、仕事をいけないしユニティを使用して、すべての可能性、Unity WebGLでjavascriptを使用して画像をダウンロードするには

を使い果たし

WWW loader = new WWW(url); 
yield return loader; 

私のための画像はjavascriptを使用して、その後、そのイメージを私の統一のC#コードに戻します。

誰でも外部のJavaスクリプトを使用してその方法を知っていますか?私はUnityから外部のJavaスクリプトを使ってサーバーに画像を送ることができるコードを持っているので、それを行うことができることを知っています。そして、アプリケーションをフリーズすることなく動作します。

ありがとうございます!

答えて

0

WebGLビルドでWWWフリーズのインスタンスが見られませんでした。あなたは間違ったことをしている可能性があり、問題の2行のコードを使って問題の内容を伝えることはできません。

WWW APIが本当に問題の場合は、UnityWebRequestを使用してください。これにはJavascriptを使用する必要はありません。

void Start() 
{ 
    StartCoroutine(downloadTexture("http://www.myUrl.png")); 
} 

IEnumerator downloadTexture(string url) 
{ 
    using (UnityWebRequest www = UnityWebRequest.GetTexture(url)) 
    { 
     yield return www.Send(); 

     if (www.isError) 
     { 
      Debug.Log(www.error); 
     } 
     else 
     { 
      Texture myTexture = DownloadHandlerTexture.GetContent(www); 
     } 
    } 
} 
+0

のWebGLでWWWを使用して凍結があり、私はまた、あなたが持っているコードを試してみました、私はそれを実行するとき、それは最後の行にエラーが発生します「というエラーm_instandeID!= 0」、それを試してみて – Programmer2

+0

すべてあなたを参照してください。 WWWを使っていくつかの写真をダウンロードしている間にキューブを回転させると、キューブの停止が表示され、エディタでも写真がダウンロードされて何回も回転を開始します。これは大きな問題です。なぜなら、ユーザーはストップとスタートが本当におなじみに見えるからです! – Programmer2

+0

エラーとして、それはバグです。あなたの 'error m_instandeID!= 0'エラーについては、[here](http://stackoverflow.com/q/39628951/3785314)を参照してください。 'DownloadHandlerTexture.GetContent'関数を呼び出す前に' yield return new WaitForEndOfFrame(); 'を追加するだけです。それでも問題が解決しない場合は、Unity 5.5にアップデートしてください。これに関連するバグは修正されている可能性が非常に高いです。 – Programmer

関連する問題