Пример #1
0
    private void _LoadAssetAsync(string _prefabName, Type _type, ILoadListening _callBack, bool _isKeepInMemory)
    {
        if(string.IsNullOrEmpty(_prefabName))
        {
            if(null!=_callBack)
                _callBack.Failure();

            return ;
        }

        if (mAssetPackDic.ContainsKey(_prefabName))
        {
            if(mAssetPackDic[_prefabName].asset==null)
            {
                if(_callBack!=null)
                    _callBack.Failure();

            }
            else
            {
                _callBack.Succeed(mAssetPackDic[_prefabName].asset);
            }

            return;
        }

        for (int i = 0; i < mLoadListIns.Count; ++i)
        {
            ResRequest request=mLoadListIns[i];

            if(request.assetName.Equals(_prefabName))
            {
                request.AddListening(_callBack);
                return ;
            }
        }

        foreach (ResRequest request in mWaitForLoadings) {
            if(request.assetName.Equals(_prefabName))
            {
                request.AddListening(_callBack);
                return;
            }
        }

        ResRequest loadRequest= new ResRequest(_prefabName,_isKeepInMemory,_type);
        loadRequest.listenings.Add(_callBack);
        mWaitForLoadings.Enqueue(loadRequest);
    }
Пример #2
0
 /// <summary>
 /// add one call back to the callback List
 /// </summary>
 /// <param name="iloadListening">Iload listening.</param>
 public void AddListening(ILoadListening iloadListening)
 {
     if(!listenings.Contains(iloadListening))
     {
         listenings.Add(iloadListening);
     }
 }
Пример #3
0
    /// <summary>
    /// Loads the asset async.
    /// </summary>
    /// <param name="_prefabName">_prefab name.</param>
    /// <param name="_type">_type.</param>
    /// <param name="_callBack">_call back.</param>
    /// <param name="_isKeepInMemory">If set to <c>true</c> _is keep in memory.</param>
    public void LoadAssetAsync(string _prefabName,Type _type,ILoadListening _callBack, bool _isKeepInMemory)
    {
        //		if(mAssetPackDic.ContainsKey(_prefabName))
        //		{
        //			if(_callBack!=null)
        //			{
        //				_callBack.Succeed(mAssetPackDic[_prefabName].resourceRequest.asset);
        //			}
        //			return;
        //		}
        //
        //		AssetPack ap=new AssetPack(_prefabName,_callBack,_type,_isKeepInMemory);
        //		mLoadQueue.Add(ap);

        _LoadAssetAsync(_prefabName,_type,_callBack,_isKeepInMemory);
    }