Ejemplo n.º 1
0
    private void RemoveAllCallBack(int effectID)
    {
        EffectFactoryNodeAsyncLoadingObj obj = AllocAsyncLoadingObj(effectID);

        if (m_AsyncLoadingEffectResHandle.Contains(effectID))
        {
            m_AsyncLoadingEffectResHandle.Remove(effectID);
        }
    }
Ejemplo n.º 2
0
    private void UpdateCallBack()
    {
        if (m_AsyncLoadingEffectResHandle.Count <= 0)
        {
            return;
        }
        tempList.Clear();

        foreach (int id in m_AsyncLoadingEffectResHandle)
        {
            LightingEffectResHandle reslut = AllocResourcesHandle(id);

            if (reslut.stage == LightingEffectResHandle.loadingStage.Stage_Finish)
            {
                tempList.Add(id);
                continue;
            }

            if (reslut.stage == LightingEffectResHandle.loadingStage.Stage_Invalid)
            {
                reslut.effectConfig = ASpeedGame.Data.Scheme.SchemeLightingEffect.Instance.GetLightingEffect(reslut.EffectID);
                if (!reslut.effectConfig)
                {
                    OnHandleResLoadFinish(null, null, reslut);
                    tempList.Add(id);
                    continue;
                }
                reslut.prefabResNode = AssetBundleManager.GetAssetsAsync(AssetType.Asset_Prefab, OnHandleResLoadFinish, reslut.effectConfig.GetAssetGUID(), true, reslut);
                if (reslut.prefabResNode == null)
                {
                    OnHandleResLoadFinish(null, null, reslut);
                    tempList.Add(id);
                    continue;
                }

                reslut.stage = LightingEffectResHandle.loadingStage.Stage_Res;
            }
        }

        foreach (int id in tempList)
        {
            EffectFactoryNodeAsyncLoadingObj obj = AllocAsyncLoadingObj(id);
            RemoveAllCallBack(id);

            for (int i = 0; i < obj.CallBackList.Count; i++)
            {
                if (obj.CallBackList[i] != null)
                {
                    obj.CallBackList[i](obj.dataList[i]);
                }
            }

            obj.Clear();
        }
    }
Ejemplo n.º 3
0
    private void PushCallBack(int effectID, LightingEffectResHandleInstance data, System.Action <LightingEffectResHandleInstance> callBack)
    {
        EffectFactoryNodeAsyncLoadingObj obj = AllocAsyncLoadingObj(effectID);

        obj.CallBackList.Add(callBack);
        obj.dataList.Add(data);
        if (!m_AsyncLoadingEffectResHandle.Contains(effectID))
        {
            m_AsyncLoadingEffectResHandle.Add(effectID);
        }
    }
Ejemplo n.º 4
0
    private EffectFactoryNodeAsyncLoadingObj AllocAsyncLoadingObj(int effectID)
    {
        EffectFactoryNodeAsyncLoadingObj reslut = null;

        if (!m_AllocedAsyncObj.TryGetValue(effectID, out reslut))
        {
            reslut = new EffectFactoryNodeAsyncLoadingObj();
            reslut.Clear();
            reslut.effectID = effectID;
            m_AllocedAsyncObj.Add(effectID, reslut);
        }
        return(reslut);
    }
Ejemplo n.º 5
0
    private void RemoveCallBack(int effectID, System.Action <LightingEffectResHandleInstance> callBack)
    {
        if (!m_AllocedAsyncObj.ContainsKey(effectID))
        {
            return;
        }

        EffectFactoryNodeAsyncLoadingObj obj = AllocAsyncLoadingObj(effectID);

        for (int i = 0; i < obj.CallBackList.Count; i++)
        {
            if (obj.CallBackList[i] == callBack)
            {
                obj.CallBackList.RemoveAt(i);
                obj.dataList.RemoveAt(i);
                break;
            }
        }
    }