コード例 #1
0
    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]);
            }
        }
    }
コード例 #2
0
    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);
        }
    }