Beispiel #1
0
        /// <summary>
        /// Changes the current panel to the specified panel id.
        /// </summary>
        public void ChangeCurrentPanel(string panelId)
        {
            UiPanelInterface panel;
            if (_uiPanelDataHolder.TryGetValue (panelId, out panel)) {
                UiPanelInterface prevPanel = _currentPanel;

                if (prevPanel != null) {
                    prevPanel.Deactivate ();
                }

                _currentPanel = panel;
                _currentPanelId = panelId;
                _currentPanel.Activate ();

                // Trigger callback.
                {
                    if (OnPanelChange != null) {
                        PanelChangeContext context = new PanelChangeContext();
                        context.PreviousPanel = prevPanel;
                        context.CurrentPanel = _currentPanel;
                        OnPanelChange(context);
                    }
                }
            } else {
                Debug.LogError ("Unable to activate a panel that is not registered: " + panelId);
            }
        }