Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
 private ResRef(ResBase res, ResLoadCompleteDelegate onComplete, IResDesc resDesc)
 {
     _res        = res;
     _onComplete = onComplete;
     _resDesc    = resDesc;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 取消回调
 /// </summary>
 public void         RemoveCallback()
 {
     _onComplete = null; _resDesc = null;
 }