Exemple #1
0
        private AbstractRes AddToLoad(ResName resName)
        {
            AbstractRes res = mResList.Find(r => r.Name.Equals(resName));

            if (res != null)
            {
                return(res);
            }

            res = ResMgr.Instance.GetRes(resName, true);

            //无论该资源是否加载完成,都需要添加对该资源依赖的引用
            ResName[] depends = res.GetDependencies();
            if (depends != null)
            {
                for (int i = 0; i < depends.Length; i++)
                {
                    AddToLoad(depends[i]);
                }
            }

            //add to list
            res.AddRef();
            mResList.Add(res);

            if (res.State != eResState.Ready)
            {
                mWaitLoadList.AddLast(res);
            }
            return(res);
        }