Ejemplo n.º 1
0
        public TextureResource GetTexture(ref string strResourceName, LoadFinishDelegate callBack, object custumParam = null,
                                          TaskPriority ePriority = TaskPriority.TaskPriority_Normal, IResource.ResourceCacheLevel rcl = IResource.ResourceCacheLevel.ResourceCacheLevel_1)
        {
            ResourceManagerImpl mgr = GetMgr(IResource.EResourceType.EResourceType_Texture);

            return((TextureResource)mgr.GetResource(IResource.EResourceType.EResourceType_Texture, ref strResourceName, callBack, custumParam, rcl, ePriority));
        }
Ejemplo n.º 2
0
        public AssetBundleResource GetAssetBundle(ref string strResourceName, LoadFinishDelegate callBack, object custumParam = null,
                                                  TaskPriority ePriority = TaskPriority.TaskPriority_Immediate, IResource.ResourceCacheLevel rcl = IResource.ResourceCacheLevel.ResourceCacheLevel_1)
        {
            ResourceManagerImpl mgr = GetMgr(IResource.EResourceType.EResourceType_AssetBundle);

            return((AssetBundleResource)mgr.GetResource(IResource.EResourceType.EResourceType_AssetBundle, ref strResourceName, callBack, custumParam, rcl, ePriority));
        }
Ejemplo n.º 3
0
        //////////////////////////////////////////////////////////////////////////
        /// 方法
        /// <summary>
        /// 加载资源
        /// </summary>
        /// <param name="eType">资源类型</param>
        /// <param name="strResourceName">资源名称</param>
        /// <param name="callBack">加载完成回调</param>
        /// <param name="custemParam">自定义参数</param>
        /// <param name="rcl">资源缓存等级</param>
        /// <returns></returns>
        public IResource GetResource(IResource.EResourceType eType, ref string strResourceName, LoadFinishDelegate callBack, object custumParam = null,
                                     IResource.ResourceCacheLevel rcl = IResource.ResourceCacheLevel.ResourceCacheLevel_NULL, TaskPriority ePriority = TaskPriority.TaskPriority_Normal)
        {
            if (strResourceName == null)
            {
                return(null);
            }
            strResourceName = strResourceName.ToLower();
            IResource res = null;

            if (!m_mapResource.TryGetValue(strResourceName, out res))
            {
                if (m_mapIdleResource.TryGetValue(strResourceName, out res))
                {
                    m_mapResource.Add(strResourceName, res);
                    m_mapIdleResource.Remove(strResourceName);
                }
            }

            if (res != null)
            {
                res.AddRef();

                // 缓存等级修正
                if (rcl > res.m_eResourceCacheLevel)
                {
                    res.m_eResourceCacheLevel = rcl;
                }

                if (res.m_eState == IResource.EResourceState.EResourceState_Complete)
                {
                    res.loadFinishCallBack += callBack;
                    res.customParams.Add(custumParam);

                    if (ePriority == TaskPriority.TaskPriority_Immediate)
                    {
                        res.OnFinish();
                    }
                    else
                    {
                        m_lstCompleteResource.Add(res);
                    }
                }
                else
                {
                    res.loadFinishCallBack += callBack;
                    res.customParams.Add(custumParam);
                }
            }
            else
            {
                /// 根据资源后缀名称判定资源类型
                res = ResourceManager.Instance().CreateResource(eType, this, ePriority);
                m_mapResource[strResourceName] = res;
                res.m_strResName          = strResourceName;
                res.m_strResFileName      = strResourceName;
                res.m_eState              = IResource.EResourceState.EResourceState_Loading;
                res.m_objRes              = null;
                res.m_eResourceCacheLevel = rcl;
                res.loadFinishCallBack   += callBack;
                res.customParams.Add(custumParam);

                // 投递资源加载
                res.LoadRes();
            }

            return(res);
        }