我整天都在搜索大量問題,但似乎找不到解決我的問題的答案,所以我希望有人能幫助我。爲什麼多個Unity協同程序加速www圖像加載?
我想在Unity場景中顯示多個圖像流。我有幾個附帶加載腳本的GameObjects,例如
GameObject1與腳本Loader.cs(調用啓動協程)
GameObject2與腳本Loader.cs(調用啓動協程)
GameObject3與腳本Loader.cs(調用協程在Start)
,並通過在這個腳本協程加載我的圖片:
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
@程序員對不起,我編輯了我的問題來澄清。同一個腳本在場景中多次出現,每次調用一次協程(在協程中它會循環加載/流式傳輸) – user3647967
這是一個瘋狂的事情,特別是當每個協程函數有'while'循環時,這意味着他們3個協程正在儘快更新映像。也許有更好的方法來做到這一點。流的來源是什麼?這是什麼類型的流? – Programmer