예제 #1
0
    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);
    }
예제 #2
0
 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));
             }
         }
     }
 }