using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.SceneManagement; public class PauseMenu : MonoBehaviour { public static bool GameIsPaused = false; public GameObject pauseMenuUI; public GameObject settingsMenuUI; public GameObject pausePanel; public GameObject saveGameText; Animator animator; private void Awake() { animator = GetComponent(); GameIsPaused = false; } public void OnEscapedPressed(InputAction.CallbackContext context) { if (context.started) { ResumeOrPauseGame(GameIsPaused); } } private void ResumeOrPauseGame(bool resume) { if (resume) { ResumeWithMenu(); } else { PauseWithMenu(); } } private void ResumeWithMenu() { // TODO make it dynamic (whichever UI is activ set it to falsen when unpaused) pausePanel.SetActive(false); Resume(); } public void Resume() { Time.timeScale = 1f; GameIsPaused = false; } private void PauseWithMenu() { settingsMenuUI.SetActive(false); pauseMenuUI.SetActive(true); pausePanel.SetActive(true); Pause(); } public void Pause() { Time.timeScale = 0f; GameIsPaused = true; } public void OnResumeClicked() { Resume(); } public void OnGameSaveClicked() { PlayerController playerController = GameObject.Find("Player").GetComponent(); SaveSystem.SavePlayer(playerController); animator.SetTrigger("GameSaved"); } public void OnSettingsSaveClicked() { animator.SetTrigger("GameSettingsSaved"); } public void OnGamedLoaded() { animator.SetTrigger("GameLoaded"); } public void OnMenuClicked() { } public void OnExitClicked() { Resume(); SceneManager.LoadScene("MainMenu"); } }