/// <summary> /// 报告资源更新下载过程中失败 /// </summary> /// <param name="updateManager"></param> /// <param name="errorDescription"></param> /// <param name="isBreakUpdateProcess">true 标识是之名错误 结束更新</param> public void RecordAssetUpdateError(AssetUpdateManagerBase updateManager, string errorDescription, AssetUpdateErrorCode errorCode) { List <AssetUpdateErrorRecordInfor> errorRecordInfors = null; if (m_AllUpdateAssetErrorRecord.TryGetValue(errorCode, out errorRecordInfors) == false) { errorRecordInfors = new List <AssetUpdateErrorRecordInfor>(); m_AllUpdateAssetErrorRecord.Add(errorCode, errorRecordInfors); } AssetUpdateErrorRecordInfor errorMsg = new AssetUpdateErrorRecordInfor(updateManager, errorDescription, errorCode); errorRecordInfors.Add(errorMsg); if ((int)errorCode > 0 && (int)errorCode < 100) { Debug.LogEditorInfor("更新过程遇到致命错误" + errorCode); if (m_CurProcess != null) { EventCenter.Instance.StopCoroutine(m_CurProcess); } IsUpdateError = true; if (m_OnUpdateProcessBreakAct != null) { m_OnUpdateProcessBreakAct(errorMsg); } return; } }
private IEnumerator CheckAssetProcess() { foreach (var assetUpdateManager in m_AllAssetUpdateManagers) { CurAssetUpdateManager = assetUpdateManager.Value; if (CurAssetUpdateManager == null) { continue; } HotAssetServerAddressInfor serverAddressInfor = ApplicationConfig.Instance.GetHotAssetServerAddressInforByType(assetUpdateManager.Key); CurAssetUpdateManager.m_OnUpdateFailAct = m_OnUpdateErrorAssetAct; CurAssetUpdateManager.BeginAssetUpdateProcess(serverAddressInfor); while (CurAssetUpdateManager.m_IsCompleteMD5 == false) { yield return(null); } TotalNeedDownloadAsset += CurAssetUpdateManager.TotalNeedDownLoadCount; } IsCompleteCheckAsset = true; if (m_CompleteCheckAssetState != null) { m_CompleteCheckAssetState.Invoke(TotalNeedDownloadAsset); } }
private IEnumerator UpdateAssetProcess(float delayTime, Action <string, int> donwnloadCallback) { //if (TotalNeedDownloadAsset == 0) // yield break; if (delayTime >= 0) { yield return(new WaitForSeconds(delayTime)); } foreach (var assetUpdateManager in m_AllAssetUpdateManagers) { CurAssetUpdateManager = assetUpdateManager.Value; if (CurAssetUpdateManager == null) { // m_AlreadyCompleteUpdateMager++; continue; } HotAssetServerAddressInfor serverAddressInfor = ApplicationConfig.Instance.GetHotAssetServerAddressInforByType(assetUpdateManager.Key); CurAssetUpdateManager.m_OnUpdateFailAct = m_OnUpdateErrorAssetAct; CurAssetUpdateManager.BeginUpdateAsset(donwnloadCallback, null); while (CurAssetUpdateManager.m_IsCompleteUpdate == false) { yield return(new WaitForSeconds(1f)); } while (CurAssetUpdateManager.m_IsUpdateRecorded == false) { yield return(null); } } S_IsCompleteUpdateAsset = true; if (m_OnCompleteUpdateAssetAct != null) { m_OnCompleteUpdateAssetAct.Invoke(); } }