private void OnCompleted(WaitCoroutine wc) { WaitForWww www = (WaitForWww)wc; mWwwList.Remove(www); if (wc.mState == WaitState.Error) { IsError = true; } if (OnSubCompleted != null) { OnSubCompleted(www); } }
public void DoUpdate() { if (State == MultiState.Puase || State == MultiState.Done) { return; } if (IsWaitLoad && mWwwList.Count > 0) { return; } int count = -1; while (++count < parallelCount && (count + index) < mResList.Count) { #if USE_5_BUNDLE string url = AppSetting.ResourceUrl + "/" + mResList[index + count]; #else string url = AppSetting.ResourceUrl + "/" + mResList[index + count] + ".assetbundle"; #endif WaitForWww www = new WaitForWww { OnCompleted = OnCompleted }; mWwwList.Add(www); www.Start(url); } index += count; // finish if (mWwwList.Count == 0) { State = MultiState.Done; if (OnAllCompleted != null) { OnAllCompleted(this); } Reset(); } }
/// <summary> /// 一个原子资源加载完成 /// </summary> /// <param name="www"></param> private void OnLoadCompleted(WaitForWww www) { string name = Path.GetFileNameWithoutExtension(www.Url); ResourcesData resData = null; if (mCacheData.TryGetValue(name, out resData)) { resData.IsLoad = true; if (www.mState == WaitState.Done) { resData.AddReference(); resData.Bundle = www.Www.assetBundle; } else { Debug.LogError(string.Format("Load Fail : {0} [{1}]", name, www.Url)); } } else { Debug.LogError(string.Format("Can't find name : {0} [{1}]", name, www.Url)); } }
public Coroutine Start(string url) { mWww = new WaitForWww(); return(mWww.Start(url)); }