Пример #1
0
 void Menu(MenuAction action)
 {
     if (action == MenuAction.open && !isMenuOpen)
     {
         isMenuOpen = true;
         if (isGameOver)
         {
             menuPanelText.text = "game over";
         }
         else
         {
             menuPanelText.text = "paused";
         }
         menuPanel.SetActive(true);
         Cursor.visible   = true;
         Cursor.lockState = CursorLockMode.None;
         Time.timeScale   = 0f;
         ReadMenuOptions(); // Read values from SO
         SaveStatistics();
         ShowStatistics();
     }
     if (action == MenuAction.close)                                // If menu opened, closes it (upd: 1st check changes + confirm dialog)
     {
         if (hasOptionsChanged && !confirmDialog.isConfirmDialogOn) // Ask for save changes before exit
         {
             if (!confirmDialog.isYesSelected && !confirmDialog.isNoSelected)
             {
                 confirmDialog.ConfirmationDialog("save Khanges?");
             }
         }
         else
         {
             if (!isGameOver)
             {
                 isMenuOpen = false;
                 menuPanel.SetActive(false);
                 Cursor.visible   = false;
                 Cursor.lockState = CursorLockMode.Locked;
                 Time.timeScale   = 1f;
             }
         }
     }
     if (action == MenuAction.wait)
     {
         if (confirmDialog.isYesSelected || confirmDialog.isNoSelected)
         {
             if (confirmDialog.isYesSelected)
             {
                 SaveMenuOptions();                               // If confirms, save and apply changes globally
             }
             if (confirmDialog.isNoSelected)
             {
                 ReadMenuOptions();                               // If cancel changes, read again from SO
             }
             // isDialogOpen = false;
             confirmDialog.Close();
             Menu(MenuAction.close);
         }
     }
 }