PauseMenu.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using UnityEngine;
  2. using UnityEngine.InputSystem;
  3. public class PauseMenu : MonoBehaviour
  4. {
  5. public static bool GameIsPaused = false;
  6. public GameObject pauseMenuUI;
  7. private SaveSystem saveSystem;
  8. void Start()
  9. {
  10. saveSystem = FindFirstObjectByType<SaveSystem>();
  11. }
  12. void Update()
  13. {
  14. // F Key to Toggle Pause
  15. if (Keyboard.current.fKey.wasPressedThisFrame)
  16. {
  17. if (GameIsPaused) Resume();
  18. else Pause();
  19. }
  20. // F5 to Save
  21. if (Keyboard.current.f5Key.wasPressedThisFrame)
  22. {
  23. saveSystem.SaveGame();
  24. }
  25. // F9 to Load
  26. if (Keyboard.current.f9Key.wasPressedThisFrame)
  27. {
  28. saveSystem.LoadGame();
  29. }
  30. }
  31. public void Resume()
  32. {
  33. pauseMenuUI.SetActive(false);
  34. Time.timeScale = 1f;
  35. GameIsPaused = false;
  36. Cursor.lockState = CursorLockMode.Locked;
  37. Cursor.visible = false;
  38. }
  39. void Pause()
  40. {
  41. pauseMenuUI.SetActive(true);
  42. Time.timeScale = 0f;
  43. GameIsPaused = true;
  44. Cursor.lockState = CursorLockMode.None;
  45. Cursor.visible = true;
  46. }
  47. public void QuitToMenu()
  48. {
  49. Time.timeScale = 1f;
  50. // Adjust "MainMenu" to your actual Main Menu scene name later
  51. UnityEngine.SceneManagement.SceneManager.LoadScene("MainMenu");
  52. }
  53. }