private IEnumerator AsyncLoadImage(string filePath, TextureFormat textureFormat) { this.rawImage.texture = this.defaultTexture; this.uiController.SetButtonInteractable(false); System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); for (int i = 0; i < TRIAL_COUNT; i++) { AsyncTextureReader.Read( new AsyncTextureReader.TextureData { filePath = filePath, format = textureFormat, width = 1000, height = 1000 }, texture => { this.rawImage.texture = texture; this.rawImage.SetNativeSize(); this.uiController.SetProgressText( AsyncTextureReader.Progress.totalCount, AsyncTextureReader.Progress.processedCount ); } ); } WaitUntil waitUntil = new WaitUntil(() => !AsyncTextureReader.Progress.IsRuntime); yield return(waitUntil); sw.Stop(); this.uiController.SetProcessedTime(sw.Elapsed.ToString()); this.uiController.SetButtonInteractable(true); Resources.UnloadUnusedAssets(); GC.Collect(); }