public static bool ReleaseResNodeAsync(IResNodeHandle _handle, ResNode _resNode, IAsyncResLoadHandler callBack, bool _bImmediate) { bool result = false; if (_handle != null && _resNode != null) { if (m_dicResNodeHandle.ContainsKey(_handle)) { List <ResNode> listValue = m_dicResNodeHandle[_handle]; ResNode FindedResNode = null; foreach (ResNode tmpResNode in listValue) { if (tmpResNode.instanceID == _resNode.instanceID) { FindedResNode = tmpResNode; break; } } if (FindedResNode != null) { listValue.Remove(FindedResNode); DeleteAssetsAsync(ref _resNode, callBack, _bImmediate); result = true; } } } return(result); }
public static bool ReleaseResNodeHandle(IResNodeHandle _handle, bool _bImmediate) { bool result = false; if (m_dicResNodeHandle.ContainsKey(_handle)) { List <ResNode> listValue = m_dicResNodeHandle[_handle]; ResNode tmpResNode = null; for (int i = listValue.Count - 1; i >= 0; --i) { tmpResNode = listValue[i]; if (tmpResNode.isAsync) { ReleaseResNodeAsync(_handle, tmpResNode, _handle as IAsyncResLoadHandler, _bImmediate); } else { ReleaseResNode(_handle, tmpResNode, _bImmediate); } } listValue.Clear(); result = true; } return(result); }
public static ResNode GetResNode(IResNodeHandle _handle, ResNodeHandleParamBase _param) { if (_handle == null || _param == null) { return(null); } ResNode returnNode = null; #region 分类型 if (_param is ResNodeHandleParam_Path) { ResNodeHandleParam_Path pathParam = _param as ResNodeHandleParam_Path; returnNode = GetAssets(_param.AssetType, pathParam.StrResPath); } else if (_param is ResNodeHandleParam_Bundle) { ResNodeHandleParam_Bundle bundleParam = _param as ResNodeHandleParam_Bundle; returnNode = GetAssets(_param.AssetType, bundleParam.StrBundleName, bundleParam.StrAssetName); } else if (_param is ResNodeHandleParam_ResConfigData) { ResNodeHandleParam_ResConfigData resConfigData = _param as ResNodeHandleParam_ResConfigData; returnNode = GetAssets(_param.AssetType, resConfigData.ConfigData); } #endregion if (returnNode != null) { if (m_dicResNodeHandle.ContainsKey(_handle)) { m_dicResNodeHandle[_handle].Add(returnNode); } else { m_dicResNodeHandle.Add(_handle, new List <ResNode>() { returnNode }); } } return(returnNode); }
public static ResNode GetResNodeAsync(IResNodeHandle _handle, ResNodeHandleParamBase _param, IAsyncResLoadHandler callBack, System.Object userDataObj = null, AssetLoadPriority priority = AssetLoadPriority.Priority_Normal) { if (_handle == null || _param == null) { return(null); } ResNode returnNode = null; #region 分类型 if (_param is ResNodeHandleParam_Path) { ResNodeHandleParam_Path pathParam = _param as ResNodeHandleParam_Path; returnNode = GetAssetsAsync(_param.AssetType, callBack, pathParam.StrResPath, pathParam.IsGuid, userDataObj, priority); } else if (_param is ResNodeHandleParam_Bundle) { ResNodeHandleParam_Bundle bundleParam = _param as ResNodeHandleParam_Bundle; returnNode = GetAssetsAsync(_param.AssetType, bundleParam.StrBundleName, bundleParam.StrAssetName, callBack, userDataObj, priority); } else if (_param is ResNodeHandleParam_ResConfigData) { ResNodeHandleParam_ResConfigData resConfigData = _param as ResNodeHandleParam_ResConfigData; returnNode = GetAssetsAsync(_param.AssetType, resConfigData.ConfigData, callBack, userDataObj, priority); } #endregion if (returnNode != null) { if (m_dicResNodeHandle.ContainsKey(_handle)) { m_dicResNodeHandle[_handle].Add(returnNode); } else { m_dicResNodeHandle.Add(_handle, new List <ResNode>() { returnNode }); } } return(returnNode); }