public void Select() { switch (currentMode) { case BaseStateMenuController.Mode.Single: // Select button from active menu MenuManager.Instance.SelectItem(); break; case BaseStateMenuController.Mode.State: Debug.Log($"Selecting State {controller.stateMenus[selectedStateIndex].name} ({selectedStateIndex})"); //AudioManager.Instance?.PlaySoundNormally(AudioManager.Instance?.Accept); // Stop state indication StartIndicating(false); if (hideHighlightOnSelect) { lastHighlightedState.highlight.SetActive(false); } // Start menu indication currentMode = BaseStateMenuController.Mode.Single; var selectedState = controller.stateMenus[selectedStateIndex]; selectedState.selectEvent?.Invoke(); StartIndicating(); break; } }
public void Return() { switch (currentMode) { case BaseStateMenuController.Mode.Single: // Stop menu indication StartIndicating(false); var selectedState = controller.stateMenus[selectedStateIndex]; selectedState.returnEvent?.Invoke(); // Start state indication currentMode = BaseStateMenuController.Mode.State; if (hideHighlightOnSelect) { lastHighlightedState?.highlight.SetActive(true); } StartIndicating(); break; case BaseStateMenuController.Mode.State: // TODO ?? break; } }
public void SetStateMenuController(BaseStateMenuController controller) { this.controller = controller; currentMode = controller.indicatorMode; controller.stateSelectTimer?.gameObject.SetActive(false); selectedStateIndex = Mathf.Clamp(controller.startStateIndex, 0, controller.stateMenus.Count - 1); var stateMenu = controller.stateMenus[selectedStateIndex]; if (currentMode == BaseStateMenuController.Mode.Single) { stateMenu.selectEvent?.Invoke(); stateMenu.highlight.SetActive(hideHighlightOnSelect); } else if (currentMode == BaseStateMenuController.Mode.State) { controller.stateSelectTimer?.gameObject.SetActive(true); if (controller.stateSelectTimer != null) { controller.stateSelectTimer.localScale = new Vector3(0, 1f, 1f); } } }