Esempio n. 1
0
        public void OpenPanel(UIPanelRef panelRef)
        {
            int instanceId = panelRef.GetInstanceID();

            if (instanceId == currentPanelInstanceId)
            {
                return;
            }

            UIPanel nextPanel;

            if (!panels.TryGetValue(instanceId, out nextPanel))
            {
                return;
            }

            uHooks.RemoveOnUpdate(this);
            ClosePanel(currentPanelInstanceId);

            currentOptions.Clear();
            currentOptions.AddRange(nextPanel.MenuOptions);
            currentPanelRefs.Clear();
            currentPanelRefs.AddRange(nextPanel.PanelRefs);
            currentOption = 0;
            DeselectAllMenuOptions();
            HighlightMenuOption(currentOption);

            if (currentOptions.Count > 0)
            {
                uHooks.AddOnUpdate(this);
            }

            nextPanel.Open();
            currentPanelInstanceId = instanceId;
        }
Esempio n. 2
0
        public void UOnUpdate()
        {
            if (InputController.btnUp)
            {
                DeselectMenuOption(currentOption);
                --currentOption;
                if (currentOption < 0)
                {
                    currentOption = currentOptions.Count - 1;
                }
                currentOption = currentOption % currentOptions.Count;
                SelectMenuOption(currentOption);
            }

            if (InputController.btnDown)
            {
                DeselectMenuOption(currentOption);
                ++currentOption;
                currentOption = currentOption % currentOptions.Count;
                SelectMenuOption(currentOption);
            }

            if (InputController.btnHit)
            {
                MenuOption opt = currentOptions[currentOption];
                if (!opt.gameObject.activeSelf)
                {
                    return;
                }
                opt.Click();
                if (onMenuOptionClicked != null)
                {
                    onMenuOptionClicked.Invoke();
                }
                UIPanelRef next = currentPanelRefs[currentOption];
                if (next == nonePanel)
                {
//                    ClosePanel(currentPanelInstanceId);
                    return;
                }
                OpenPanel(next);
            }
        }