Beispiel #1
0
    /// <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);
    }
Beispiel #2
0
    public ResPathData GetDataById(int id)
    {
        ResPathData data = null;

        if (null != resPathDataList)
        {
            resPathDataList.TryGetValue(id, out data);
        }
        return(data);
    }
Beispiel #3
0
    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);
        }
    }
Beispiel #4
0
 /// <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);
 }