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); }
/// <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); } }
/// <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); }