/// <summary> /// 根据资源ID获取对应资源,缓存池中没有则懒加载(同步方法) /// </summary> /// <typeparam name="T"></typeparam> /// <param name="resID"></param> /// <returns></returns> public T GetResourceById <T>(int resID) where T : Object { T resObj = null; //先去缓存池中找,如果没有再懒加载 resObj = GetCacheResById <T>(resID); if (null == resObj) { ResPathData data = GetResPathDataById(resID); if (null != data) { string resPath = GetResPathWithExtension(data.resPath); if (string.IsNullOrEmpty(resPath)) { Debug.LogWarning(string.Format("加载资源ID为:{0}的资源出错!资源路径不存在!", resID)); } else { resObj = GetResourceByPath <T>(resPath, data.resLoadMode); AddResource(resObj, resID, typeof(T)); } } } return(resObj); }
public ResPathData GetDataById(int id) { ResPathData data = null; if (null != resPathDataList) { resPathDataList.TryGetValue(id, out data); } return(data); }
public void SetMapCsv(string[] rows) { resPathDataList.Clear(); for (int i = 4; i < rows.Length; i++) { ResPathData data = new ResPathData(); data.InitWithStr(rows[i]); resPathDataList.Add(data.id, data); } }
/// <summary> /// 根据资源ID获取对应资源的完整路径(包含拓展名) /// </summary> /// <param name="resID"></param> /// <returns></returns> public string GetResPathById(int resID) { if (null != resPathDataMap) { ResPathData data = resPathDataMap.GetDataById(resID); if (null != data) { return(data.resPath); } Debug.LogWarning(string.Format("resPathDataMap 键{0}对应的值为空!", resID)); return(string.Empty); } Debug.LogWarning("resPathDataMap初始化错误!"); return(string.Empty); }