示例#1
0
    public void Loading()
    {
        if (string.IsNullOrEmpty(url))
        {
            Debug.LogErrorFormat("NeedLoadString.IsNullOrEmpty(url) == true");
            return;
        }
        state = SimpleLoadState.Loading;
        BumPoolManager.BumPoolData data;
        // 资源池里面已经存在的数据
        if (BumLogic.poolManager.tryGet(url, out data))
        {
            data.newUseTime = Time.realtimeSinceStartup;
            MyCallLater.Add(LoadInPool, 0, data);
            return;
        }
        bool add = BumLogic.poolManager.addLoading(this);

        if (add)
        {
            if (loaders.Count < Loadercount)
            {
                loaders.Add(this);
                StartLoad();
            }
            else
            {
                loaderStack.Push(this);
            }
        }
    }
示例#2
0
    private void LoadInPool(object data)
    {
        BumPoolManager.BumPoolData poolData = data as BumPoolManager.BumPoolData;
        if (poolData is BumPoolManager.BumPoolErrorData)
        {
            BumPoolManager.BumPoolErrorData errorData = poolData as BumPoolManager.BumPoolErrorData;
            errorData.errorCount++;
            this.state = SimpleLoadState.Failed;
            this.EndOnly();
            return;
        }

        #region PoolData
        switch (poolData.type)
        {
        case BumPoolDataType.eBumPoolDataType_byte:
            break;

        case BumPoolDataType.eBumPoolDataType_json:
            loadedData = poolData.resource;
            break;

        case BumPoolDataType.eBumPoolDataType_texture2D:
            loadedData = poolData.resource;
            break;

        case BumPoolDataType.eBumPoolDataType_prefab:
            BumPoolManager.BumPoolPrefabData prefabData = poolData as BumPoolManager.BumPoolPrefabData;
            loadedData = poolData.resource;
            if (canceled == false)
            {
                loadedData = prefabData.getNew();
            }
            break;

        default:
            loadedData = null;
            Debug.LogWarning("没有此类型的池");
            break;
        }
        #endregion

        EndOnly();
    }