public void ClosePanel(AbstractPanel panel) { if (panel == null) { return; } PanelInfo panelInfo = FindPanelInfoByPanelID(panel.panelID); //该面板的管理失效,直接移除 if (panelInfo == null) { panelInfo = GetPanelFromCache(panel.uiID, false); if (panelInfo == null) { Log.e("Not Find PanelInfo For Panel."); panel.OnPanelClose(true); GameObject.Destroy(panel.gameObject); } return; } ClosePanelInfo(panelInfo); ReSortPanel(); }
private void OnPanelResLoadSuccess(GameObject prefab) { if (m_NextMaster < 0) { Log.i("PanelInfo Already Close,But Still Call OnPanelResLoadSuccess"); m_PanelState = ePanelState.UnInit; return; } if (prefab == null) { UIData data = UIDataTable.Get(m_UIID); Log.e(string.Format("Failed to Load UI Prefab:{0} Path:{1}", m_UIID, data.fullPath)); return; } m_PanelState = ePanelState.Ready; GameObject go = UIMgr.Instance.InstantiateUIPrefab(prefab); go.SetActive(false); UIMgr.Instance.InitPanelParem(go); AbstractPanel panel = go.GetComponent <AbstractPanel>(); if (panel == null) { //该类型面板不纳入管理 go.gameObject.SetActive(true); Log.e("Not Find Panel Class In Prefab For Panel:" + m_UIID); //需要删除PanelInfo From Activity. return; } panel.customVisibleFlag = m_CustomVisibleFlag; UIData panelData = UIDataTable.Get(m_UIID); if (panelData.panelClassType != null) { if (panel.GetType() != panelData.panelClassType) { Log.e("ERROR: Prefab Bind C# Class Is Not Same With Define:" + panelData.name); } } abstractPanel = panel; UIMgr.Instance.SetPanelSortingOrderDirty(); }
protected override void Awake() { base.Awake(); if (m_Panel == null) { m_Panel = gameObject.GetComponent <AbstractPanel>(); } if (m_Panel != null) { UIMgr.Instance.uiEventSystem.Register(m_Panel.GetParentPanelID(), OnParentPanelEvent); } }
public void SetPanelVisible(AbstractPanel panel, bool visible) { if (panel == null) { return; } PanelInfo panelInfo = FindPanelInfoByPanelID(panel.panelID); if (panelInfo == null) { return; } panelInfo.customVisibleFlag = visible; }
public void ClosePanel(bool destroy) { if (m_Panel == null) { return; } m_Panel.OnPanelClose(destroy); if (destroy) { GameObject.Destroy(m_Panel.gameObject); m_Panel = null; } else { SetActive(false, false); } }
//编辑器面板强行删除面板 public void OnPanelForceDestroy(AbstractPanel panel) { if (panel == null) { return; } PanelInfo panelInfo = FindPanelInfoByPanelID(panel.panelID); if (panelInfo == null) { return; } RemovePanelInfo(panelInfo); CheckNeedClosePanel(panelInfo.panelID); ObjectPool <PanelInfo> .Instance.Recycle(panelInfo); ReSortPanel(); }
public void OnCacheReset() { m_Panel = null; m_NextMaster = -1; m_PanelID = -1; m_UIID = -1; m_SortIndex = -1; m_PanelState = ePanelState.UnInit; m_OpenListeners = null; m_CustomVisibleFlag = true; m_ResLoader.ReleaseAllRes(); if (m_PageWrapList != null) { m_PageWrapList.Clear(); } if (m_OpenInfoList != null) { m_OpenInfoList.Clear(); } }