Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    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);
    }