void AddDialog(int id, bool stackable) { var buttons = new List <IDialogButton>(); buttons.Add(new ConfirmDialogButton("add", "Enqueue")); buttons.Add(new ConfirmDialogButton("stack", "Overlay")); buttons.Add(new ConfirmDialogButton("close", "Close")); var dialog = new ConfirmDialog("Dialog " + id + (stackable ? "(Stackable)": ""), buttons, ConfirmDialogSize.Small); dialog.OnClickAsObservable().Subscribe(b => { switch (b.Id) { case "add": AddDialog(n++, false); break; case "stack": AddDialog(n++, true); break; case "close": dialog.Close(); break; } }).AddTo(this); dialog.Stackable = stackable; _dialogRoot.Enqueue(dialog); }
public void GetSpecialActions() { // ESC key for both cancel (multiple!) confirmation dialog AND open+close menu is a nightmare. Resolved! if (confirmDialog.isConfirmDialogOn) { if (Input.GetKeyDown(KeyCode.Escape)) { confirmDialog.Close(); } } else { if (isMenuOpen) { if (Input.GetKeyDown(KeyCode.Escape) && !isGameOver) { Menu(MenuAction.close); } } else { if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Tab) || Input.GetKeyDown(KeyCode.P)) { if (isActionOn) { Menu(MenuAction.open); } } if (Input.GetKeyDown(KeyCode.F1)) // Toggle Keyboard on/off { inputKeyboard = !inputKeyboard; iconKeyboard.color = inputKeyboard ? defaultColor : offColor; PlayerPrefs.SetInt("Input Keyboard", (inputKeyboard ? 1 : 0)); } if (Input.GetKeyDown(KeyCode.F2)) // Toggle Mouse on/off { inputMouse = !inputMouse; iconMouse.color = inputMouse ? defaultColor : offColor; PlayerPrefs.SetInt("Input Mouse", (inputMouse ? 1 : 0)); } } } }