public void LoadAsync(ResLoadInfo resLoadInfo) { if (resLoadInfo.mResPath == "") { AFLogger.e("资源路径为空,无法进行加载"); return; } ResInfo resInfo = ResManager.Instance.GetRes(resLoadInfo); if (resInfo != null && resInfo.State == ResState.Ready && (resInfo.ResObject.IsNotNull() || resInfo.ResStr.IsNotNullAndEmpty())) { resLoadInfo.mListener.InvokeGracefully(true, resInfo); } else if (resInfo == null) { resInfo = ResFactory.Create(resLoadInfo); //加入队列 if (resInfo.LoadAsync()) { ResManager.Instance.CacheResource(resLoadInfo.mResPath, resInfo); } } else { AFLogger.e("当前请求的资源正在加载,增加回调"); //当前请求的资源正在加载,增加回调 resInfo.RegisterListen(resLoadInfo.mListener); } }
/// <summary> /// 同步加载资源 /// </summary> /// <param name="resLoadInfo"></param> /// <returns></returns> public Object LoadSync(ResLoadInfo resLoadInfo) { if (resLoadInfo.mResPath == "") { AFLogger.e("资源路径为空,无法进行加载"); return(null); } ResInfo resInfo = ResManager.Instance.GetRes(resLoadInfo); if (resInfo != null && resInfo.State == ResState.Ready && (resInfo.ResObject.IsNotNull() || resInfo.ResStr.IsNotNullAndEmpty())) { resInfo.Retain(); return(resInfo.ResObject); } else if (resInfo == null) { resInfo = ResFactory.Create(resLoadInfo); if (resInfo.LoadSync()) { resInfo.Retain(); Debug.Log("加载成功:" + resInfo.RefCount); ResManager.Instance.CacheResource(resLoadInfo.mResPath, resInfo); return(resInfo.ResObject); } else { //加载失败,释放 resInfo.Recycle2Cache(); } } else { AFLogger.e("同步遇到异步加载的资源 : " + resInfo.ResPath + ",请检查调用代码!"); } return(null); }