/// <summary> /// 隱藏介面 /// </summary> public void HidePanel(EUIPanelType _UIPanelType, IUIPanelData _PanelData = null) { if (!IsPanelOnShow(_UIPanelType)) { return; } IUIPanel panel; if (mSpawnPanelList.TryGetValue(_UIPanelType, out panel)) { panel.HidePanel(_PanelData); } }
/// <summary> /// 顯示介面 /// </summary> public IUIPanel ShowPanel(EUIPanelType _UIPanelType, IUIPanelData _PanelData = null) { if (!mIsInit) { Debug.LogError("UI Manager not Init yet!"); return(null); } //介面已經在顯示中 if (IsPanelOnShow(_UIPanelType)) { Debug.LogErrorFormat("[{0}] is Showing, if you want to show, please close first!!", _UIPanelType); return(null); } //介面已經生成,但目前未顯示 if (HasPanel(_UIPanelType)) { IUIPanel panel; if (mSpawnPanelList.TryGetValue(_UIPanelType, out panel)) { panel.ShowPanel(_PanelData); return(panel); } return(null); } //介面未生成,生成新介面 else { GameObject loadGo = null; if (mPanelDataList.TryGetValue(_UIPanelType, out loadGo)) { GameObject panelObj = Utility.GameObjectRelate.InstantiateGameObject(GetCanvasRoot(), loadGo); mSpawnPanelList.Add(_UIPanelType, panelObj.GetComponent <IUIPanel>()); panelObj.GetComponent <IUIPanel>().ShowPanel(_PanelData); return(panelObj.GetComponent <IUIPanel>()); } Debug.LogErrorFormat("This [{0}] Type Can't Find Prefab Reference in UI Panel Reference Object", _UIPanelType); return(null); } }
// 結束 public virtual void HidePanel(IUIPanelData _PanelData) { this.gameObject.SetActive(false); }
// 開始 public virtual void ShowPanel(IUIPanelData _PanelData) { this.gameObject.SetActive(true); }