/// <summary> /// 创建 /// </summary> public static ResRef Create(ResBase res, ResLoadCompleteDelegate onComplete, IResDesc resDesc) { ResRef r = new ResRef(res, onComplete, resDesc); if (null != r._res) { r._res.IncRef(); } return(r); }
/// <summary> /// 加载 /// </summary> static private ResRef LoadResByUrl <T>(string url, string resName, ResLoadCompleteDelegate onComplete, IResDesc resDesc, bool holdbundle = false) where T : ResBase, new() { // 查找 var res = FindRes(url); if (null == res) { res = new T(); res.Init(url, resName, holdbundle); } else { // 从空闲列表移除 if (res.refCount <= 0) { _unusedResources.Remove(res); } if (res.isLoaded) { var Ref = ResRef.Create(res, onComplete, resDesc); Ref.OnComplete(); return(Ref); } } var r = ResRef.Create(res, onComplete, resDesc); // 加入列表 _loader.Push(r); return(r); }
private ResRef(ResBase res, ResLoadCompleteDelegate onComplete, IResDesc resDesc) { _res = res; _onComplete = onComplete; _resDesc = resDesc; }
/// <summary> /// 取消回调 /// </summary> public void RemoveCallback() { _onComplete = null; _resDesc = null; }