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); } }
/// <summary> /// 设置默认的热更新资源服务器地址 /// </summary> private void SetDefaultAssetUpdatePathInfor() { m_AllHotAssetServerInfor.Clear(); var loadAssetEnum = System.Enum.GetValues(typeof(HotAssetEnum)); foreach (var item in loadAssetEnum) { HotAssetServerAddressInfor infor = new HotAssetServerAddressInfor(); infor.m_AssetEum = (HotAssetEnum)System.Enum.Parse(typeof(HotAssetEnum), item.ToString()); infor.m_ServerAssetPath = ""; m_AllHotAssetServerInfor.Add(infor); } }
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(); } }