我想異步加載本地圖像,但「sprite.create」需要很長時間才能停止UI。我怎樣才能解決這個問題?如何異步加載本地圖像?
WWW www = new WWW (filePath);
yield return www;
Texture2D texture = new Texture2D(4, 4, TextureFormat.ARGB32, true);
www.LoadImageIntoTexture(texture);
www.Dispose();
www = null;
curTexture = texture;
img.sprite = Sprite.Create (curTexture, new Rect (0, 0, curTexture.width, curTexture.height), new Vector2 (0.5f, 0.5f));
更新2016年8月26日:
我用RawImage設置的紋理,而不是使用Image這就需要改變紋理精靈。
另一個問題是,www.LoadImageIntoTexture也需要這麼多時間。我以前使用過www.texture,但是我發現它無法從Android設備加載一些png,它只顯示藍色圖像。
請說明你是如何調用這段代碼所在的函數的。 –
另外,你有沒有考慮嘗試擺脫'Texture2D紋理= ...'線,只是做'curTexture = www.texture;'? –
您可以使用UI.RawImage而不是UI.Image,並直接將[WWW.texture](https://docs.unity3d.com/ScriptReference/WWW-texture.html)分配給[RawImage.texture](http:/ /docs.unity3d.com/ScriptReference/UI.RawImage-texture.html) – JeanLuc