private static void ProcessResourcePackageCallBack() { Temp_LoadCompleteList_int.Clear(); Temp_LoadCompleteList_int.AddRange(m_ResourcePackageWatingForCallBack); m_ResourcePackageWatingForCallBack.Clear(); foreach (int id in Temp_LoadCompleteList_int) { ResourcePackage packageTemp = AllocResourcePackage(id); Temp_resourcePackageCallBackList.Clear(); Temp_callBackDataList.Clear(); Temp_resourcePackageCallBackList.AddRange(packageTemp.resourcePackageCallBackList); Temp_callBackDataList.AddRange(packageTemp.callBackDataList); packageTemp.ClearAsyncCallBackData(); for (int i = 0; i < Temp_resourcePackageCallBackList.Count; i++) { System.Action <ResourcePackageCallBackObj> cb = Temp_resourcePackageCallBackList[i]; ResNode result = AllocResNode(Temp_callBackDataList[i].resInstanceID); cb(Temp_callBackDataList[i]); } } }
private static void ProcessAssetsFileAsyncRequest(float dealtTime) { Temp_LoadCompleteList_int.Clear(); //已经在处理请求或者没有请求返回 if (isProcessingAssetsFileAsyncRequest || m_WaitForUpLoadAssetsFileAsyncRequestSet.Count <= 0) { return; } currUpLoad_AssetsFile_AsyncRequestClipTime += dealtTime; int cout = m_WaitForUpLoadAssetsFileAsyncRequestSet.Count; //数量足够,或者达到了一个异步时间片段 if (cout < MinUpLoadAssetsFileAsyncRequestCount && currUpLoad_AssetsFile_AsyncRequestClipTime < MaxUpLoad_AssetsFile_AsyncRequestClipTime) { return; } currUpLoad_AssetsFile_AsyncRequestClipTime = 0.0f; int UpLoadCount = 0; TempList_int.Clear(); TempList_int.AddRange(m_WaitForUpLoadAssetsFileAsyncRequestSet); TempList_int.Sort(AssetsFileAsyncRequestSortFunc); ResourcePackage req = AllocResourcePackage(TempList_int[0]); foreach (int id in TempList_int) { //一次最多上传MinUpLoadAsyncRequestCount请求 if (UpLoadCount >= MinUpLoadAssetsFileAsyncRequestCount) { break; } req = AllocResourcePackage(id); RemoveFromAssetsFileUpLoadQueue(id); UpLoadCount++; req.fileRequest = LoadAssetBundleAsync(req.filePatch, req.startIndex); req.isUpLoadToLoadingThread = true; m_ProcessingAssetsFileAsyncRequestList.Add(id); } }