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