public ResNode Load(string path, LoadResCallBack cb) // 加载预设 程序不要在内部实例化 这个工作交给外部 { path = "Assets/" + path; ResNode tmpNode = null; if (!pathResMap.ContainsKey(path)) { tmpNode = new ResNode(); tmpNode.asset = null; tmpNode.path = path; pathResMap.Add(path, tmpNode); tmpNode.AddCallBack(cb); } else { tmpNode = pathResMap[path]; tmpNode.AddRef(); tmpNode.AddCallBack(cb); } //将请求缓存起来 resRequestQueue.Enqueue(tmpNode); return(tmpNode); }
public void Load(string path, LoadResCallBack cb) { ResMgr mgr = Game.Instance.GetMgr(MgrDefine.RES_MANAGER) as ResMgr; path = "Assets/" + path; mgr.Load(path, (res) => { var go = GameObject.Instantiate(res) as GameObject; cb(go); }); }
public void AddCallBack(LoadResCallBack cb) { m_callbacks.AddLast(cb); }