私は一日中たくさんの質問を通して自分のやり方を尋ねましたが、私の問題に答える答えが見つからないようですので、誰かが私を助けてくれることを願っています。複数のUnityコルーチンがwww画像の読み込みを高速化するのはなぜですか?
Unityシーンに複数の画像ストリームを表示したいとします。私はローディングスクリプトが添付された複数のGameObjectを持っています。スクリプトLoader.csと
GameObject1スクリプトLoader.csと
GameObject2(スタートでコルーチンを呼び出す)スクリプトLoader.csと
GameObject3(スタートでコルーチン()呼び出しコルーチンを呼び出します
と、このスクリプトでコルーチンを経由して、私のイメージをロード)を起動中:
IEnumerator Load()
{
Texture2D tex = new Texture2D(4, 4, TextureFormat.DXT1, false);
while (true)
{
WWW www = new WWW(url);
yield return www;
www.LoadImageIntoTexture(tex);
img.texture = tex;
}
}
(ここで、img.textureはシーン内の画像で、urlはロード元のURLです)。
これはイメージのロードには問題ありませんが、より多くのコルーチンを開始するとイメージのロード/ストリームが高速になります。明確にするために、私は1つの画像ストリームを持っている場合、それは特定の速度で画像を更新していますが、もしあれば、例えば、 3つの画像ストリーム(それぞれ読み込み用のコルーチンを有する)は、3つのストリームすべてが突然1つのストリームよりも速く画像をロードする。
コルーチンの終わりにyield return new WaitForFixedUpdate();
を追加しようとしましたが、助けにならなかったので、新しい画像を読み込む際にどのように規則的なペースを達成するのか分かりません。 ? 私はそれが何を意味し、何か助けに感謝していることは間違いないと思います!
あなたの質問は不完全です...マルチコルーチンはどこですか?あなたは 'Load'をフレーム内で何度も呼び出すことを意味していますか? – Programmer
@Programmer申し訳ありませんが、私は明確にするために私の質問を編集しました。同じスクリプトが何度もシーン内にあり、それぞれがコルーチンを一度呼び出します(コルーチンでは画像の読み込み/ストリーミングをループします) – user3647967
これは、それぞれのコルーチン関数がwhileループであるときに特に気をつけています3つのコルーチンはできるだけ早く画像を更新しています。おそらくこれを行うためのより良い方法があります。ストリームのソースは何ですか?これはどのような種類のストリームですか? – Programmer