Menu.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using TMPro;
  2. using UnityEngine;
  3. using UnityEngine.SceneManagement;
  4. using Button = UnityEngine.UI.Button;
  5. public class Menu : MonoBehaviour
  6. {
  7. public TMP_InputField seedInput;
  8. public TMP_Text saveInfos;
  9. public Button loadGameButton;
  10. public Canvas mainCanvas;
  11. public Canvas newGame;
  12. public Canvas loadGame;
  13. private SaveManager sm;
  14. // Start is called once before the first execution of Update after the MonoBehaviour is created
  15. void Start()
  16. {
  17. sm = GetComponent<SaveManager>();
  18. newGame.enabled = false;
  19. loadGame.enabled = false;
  20. }
  21. // Update is called once per frame
  22. void Update()
  23. {
  24. }
  25. public void NewGame()
  26. {
  27. GameData gameData = new();
  28. if(!int.TryParse(seedInput.text, out int number))
  29. {
  30. System.Random rnd = new();
  31. gameData.seed = rnd.Next();
  32. }
  33. else
  34. {
  35. gameData.seed = number;
  36. }
  37. sm.SaveGame(gameData);
  38. SceneManager.LoadScene("Game");
  39. }
  40. public void LoadGame()
  41. {
  42. GameData gameData = sm.LoadGame();
  43. if (gameData != null)
  44. {
  45. SceneManager.LoadScene("Game");
  46. }
  47. else
  48. {
  49. Debug.Log("No saves!");
  50. }
  51. }
  52. public void MainMenu()
  53. {
  54. mainCanvas.enabled = true;
  55. newGame.enabled = false;
  56. loadGame.enabled = false;
  57. }
  58. public void NewGameSubMenu()
  59. {
  60. mainCanvas.enabled = false;
  61. newGame.enabled = true;
  62. loadGame.enabled = false;
  63. }
  64. public void LoadGameSubMenu()
  65. {
  66. mainCanvas.enabled = false;
  67. newGame.enabled = false;
  68. loadGame.enabled = true;
  69. GameData gameData = sm.LoadGame();
  70. if (gameData != null)
  71. {
  72. saveInfos.text = "Current time : " + gameData.hours.ToString("D2") + "h" + gameData.minutes.ToString("D2") +
  73. "\nScore : " + gameData.playerScore.ToString("D2") +
  74. "\nSeed : " + gameData.seed;
  75. }
  76. else
  77. {
  78. saveInfos.text = "No saves found!";
  79. loadGameButton.interactable = false;
  80. }
  81. }
  82. }