private void RegisterGameObject(MFUIManager.MFUIID id, string path, string goName, bool preLoad = false) { if (!m_listResPathToPoolUnit.ContainsKey(path)) { List <MFUIGameObjectPoolUnit> listUnit = new List <MFUIGameObjectPoolUnit>(); m_listResPathToPoolUnit.Add(path, listUnit); MFUIResourceManager.GetSingleton().LoadInstance(id, path, goName, preLoad); } else { //Debug.LogError("LoadResouce " + path); List <MFUIGameObjectPoolUnit> listUnit = m_listResPathToPoolUnit[path]; for (int i = 0; i < listUnit.Count; ++i) { if (listUnit[i].isFree) { listUnit[i].isFree = false; listUnit[i].poolUnit.name = goName; MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName); return; } } MFUIResourceManager.GetSingleton().LoadInstance(id, path, goName, preLoad); } }
public void LoadResource(MFUIManager.MFUIID id, string path, System.Action <Object> callBack) { if (m_dictResNameToObj.ContainsKey(path)) { if (callBack != null) { callBack(m_dictResNameToObj[path]); } } else { AssetCacheMgr.GetUIResource(path, (obj) => { m_dictResNameToObj[path] = obj; if (!m_dictUIIDToObjList.ContainsKey(id)) { m_dictUIIDToObjList.Add(id, new List <Object>()); } if (!m_dictUIIDToObjList[id].Contains(obj)) { m_dictUIIDToObjList[id].Add(obj); } callBack(obj); }); } }
public void ReleasePreLoadResource(MFUIManager.MFUIID id) //释放预加载的资源 { if (!SystemSwitch.DestroyAllUI) { return; } if (!m_dictUIIDToObjList.ContainsKey(id)) { return; } List <Object> objList = m_dictUIIDToObjList[id]; foreach (var item in objList) { foreach (var item1 in m_dictResNameToObj) { if (item == item1.Value) { AssetCacheMgr.ReleaseResourceImmediate(item1.Key); m_dictResNameToObj.Remove(item1.Key); break; } } } m_dictUIIDToObjList.Remove(id); }
public void PushOne(Action action, MFUIManager.MFUIID baseUI = MFUIManager.MFUIID.None, uint pri = 0, string debugText = "") { MFUIQueueUnit unit = new MFUIQueueUnit() { UnitID = ++m_nextUnitID, act = action, UnitPriority = pri, BaseUIID = baseUI }; if (baseUI == MFUIManager.MFUIID.None) { MFUIUtils.MFUIDebug(string.Concat(debugText, " Run 1")); unit.JustDoIt(); } else if (baseUI == MFUIManager.CurrentUI && !IsLocking) { MFUIUtils.MFUIDebug(string.Concat(debugText, " Run 2")); unit.JustDoIt(); } else { MFUIUtils.MFUIDebug(string.Concat(debugText, " Run 3")); m_listUI.Add(unit); m_listUI = m_listUI.OrderByDescending(t => t.UnitPriority).ToList(); } }
public List <Object> GetPreLoadResource(MFUIManager.MFUIID id) //获取预加载的资源 null为未加载 { if (m_dictUIIDToObjList.ContainsKey(id)) { return(m_dictUIIDToObjList[id]); } return(null); }
void OnUIResourcesLoaded(MFUIManager.MFUIID id) { if (id != ID) { return; } Create(); m_bIsResourcesLoaded = true; //Show(); if (IsUIDirty()) { Show(); } }
public void ResourceLoaded(string goName) { foreach (var item in m_dictGoNameToUIID) { if (item.Key == goName) { MFUIManager.MFUIID uiID = item.Value; if (m_dictUIIDToUnInstanceObjCount.ContainsKey(uiID)) { --m_dictUIIDToUnInstanceObjCount[uiID]; if (m_dictUIIDToUnInstanceObjCount[uiID] == 0) { if (m_dictUIIDToCallBack.ContainsKey(uiID)) { if (m_dictUIIDToCallBack[uiID] != null) { m_dictUIIDToCallBack[uiID](); } else { if (UIResourcesLoadedCB != null) { UIResourcesLoadedCB(uiID); } } m_dictUIIDToCallBack.Remove(uiID); } else { if (UIResourcesLoadedCB != null) { UIResourcesLoadedCB(uiID); } } } } m_dictGoNameToUIID.Remove(item.Key); break; } } }
//public void LoadResource(string path,MFUIManager.MFUIID id, GameObject outGO) //{ // if (m_dictResNameToObj.ContainsKey(path)) // { // outGO = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path])); // MFUIGameObjectPool.GetSingleton().ResourceLoaded(id); // } // else // { // Object obj = Resources.Load(path); // if (obj == null) // { // MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! ")); // return; // } // m_dictResNameToObj.Add(path, obj); // outGO = (GameObject)(GameObject.Instantiate(obj)); // MFUIGameObjectPool.GetSingleton().ResourceLoaded(id); // } //} public void PreLoadResource(string path, MFUIManager.MFUIID id) //预加载资源存放到UIID->Object Dict & resName->Object { if (!m_dictUIIDToObjList.ContainsKey(id)) { m_dictUIIDToObjList.Add(id, new List <Object>()); } if (!m_dictResNameToObj.ContainsKey(path)) { AssetCacheMgr.GetUIResource(path, (obj) => { m_dictResNameToObj.Add(path, obj); //if(!m_dictUIIDToObjList.ContainsKey(id)) //{ // m_dictUIIDToObjList[id].Add(obj); //} if (!m_dictUIIDToObjList[id].Contains(obj)) { m_dictUIIDToObjList[id].Add(obj); } }); } else { //if (!m_dictUIIDToObjList.ContainsKey(id)) //{ // //m_dictUIIDToObjList[id].Add(m_dictResNameToObj[path]); //} if (!m_dictUIIDToObjList[id].Contains(m_dictResNameToObj[path])) { m_dictUIIDToObjList[id].Add(m_dictResNameToObj[path]); } } }
public void NotRegisterGameObjectList(MFUIManager.MFUIID id) { UIResourcesLoadedCB(id); }
public void LoadInstance(MFUIManager.MFUIID id, string path, string goName, bool preLoad) //加载资源并实例化 { if (m_dictResNameToObj.ContainsKey(path)) { MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit(); unit.isFree = false; unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path])); unit.poolUnit.name = goName; if (preLoad) { unit.isFree = true; MFUIUtils.ShowGameObject(false, unit.poolUnit); } MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit); MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName); } else { AssetCacheMgr.GetUIResource(path, (obj) => { if (obj == null) { MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! ")); return; } if (m_dictResNameToObj.ContainsKey(path)) { MFUIUtils.MFUIDebug("Same Key in ResNameToObj Dict , Now Replace It"); } //m_dictResNameToObj.Add(path, obj); m_dictResNameToObj[path] = obj; if (!m_dictUIIDToObjList.ContainsKey(id)) { m_dictUIIDToObjList.Add(id, new List <Object>()); } if (!m_dictUIIDToObjList[id].Contains(obj)) { m_dictUIIDToObjList[id].Add(obj); } MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit(); unit.isFree = false; unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path])); unit.poolUnit.name = goName; if (preLoad) { unit.isFree = true; MFUIUtils.ShowGameObject(false, unit.poolUnit); } MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit); MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName); }); //Object obj = Resources.Load(path); //if (obj == null) //{ // MFUIUtils.MFUIDebug(string.Concat(path, " Not Found ! ")); // return; //} //m_dictResNameToObj.Add(path, obj); //MFUIGameObjectPoolUnit unit = new MFUIGameObjectPoolUnit(); //unit.isFree = false; //unit.poolUnit = (GameObject)(GameObject.Instantiate(m_dictResNameToObj[path])); //unit.poolUnit.name = goName; //MFUIGameObjectPool.GetSingleton().m_listResPathToPoolUnit[path].Add(unit); //MFUIGameObjectPool.GetSingleton().ResourceLoaded(goName); } }