public static byte[] SyncDownloadBytes(string path, bool removeImpurity = true) { byte[] rawBytes = null; using (UnityWebRequest www = UnityWebRequest.Get(path)) { www.Send(); while (true) { if (www.isNetworkError || www.isHttpError) { Debugger.LogError("failed to load path->" + path); break; } if (www.isDone) { break; } } try { if (www.isDone && (!www.isNetworkError && !www.isHttpError)) { rawBytes = www.downloadHandler.data; if (removeImpurity) { _RemoveImpurity(rawBytes, null, false); } return(rawBytes); } else { Debug.LogError("sync read file error->" + www.error + "^" + ResUpdate.ConvertPathToName(path)); } } catch (Exception e) { Debugger.LogError("syn read bytes failed->" + e.ToString()); } } return(null); }
private IEnumerator CreateAssetBundle_Offset(string name, string path, ulong offset, Request request, EndLoadBundle endLoad, System.Object ud, bool assetBundle)//, bool cb_whatever) { if (Config.Detail_Debug_Log()) { Debug.LogWarning("begin create asset ---------->" + name); } AssetBundleCreateRequest result = AssetBundle.LoadFromFileAsync(path, 0, offset); yield return(result); if (Config.Detail_Debug_Log()) { Debug.LogWarning("end create asset ----------->" + name); } if (!result.isDone || result.assetBundle == null) { if (Config.Debug_Log()) { Debugger.LogError("Failed to create asset bundle: " + path + "^" + ResUpdate.ConvertPathToName(path)); } cache.Remove(name); ProcessRequest(request, (System.Object)endLoad, ud); yield break; } if (!assetBundle) { request.asset = result.assetBundle.mainAsset; if (Config.Detail_Debug_Log()) { if (result.assetBundle.mainAsset != null) { Debug.LogWarning("create asset bundle type->" + result.assetBundle.mainAsset); } } } else { request.asset = result.assetBundle; } if (request.asset == null) { UnityEngine.Object[] arr = result.assetBundle.LoadAllAssets(); if (arr != null && arr.Length > 0) { request.asset = arr[0]; if (arr.Length > 1) { for (int i = 1, count = arr.Length; i < count; i++) { Resources.UnloadAsset(arr[i]); } } } } if (request.asset == null) { if (Config.Debug_Log()) { Debugger.LogError("Failed to load asset:%s, asset is null", ResUpdate.ConvertPathToName(path)); } } request.referenceNum++; ProcessRequest(request, (System.Object)endLoad, ud); if (!assetBundle) { CoroutineHelper.CreateCoroutineHelper(AsynUnloadAssetBundle(result.assetBundle)); } }