MainMenuManager

Overview

Controls the main menu flow: Continue, New Game, Tutorial, Quit, plus a warning path when save data exists. Also sets the top-level navigationRoute for UI and triggers main menu music.

Serialized References

  • Atoms: BoolVariable shouldLoadGame, SaveLoadManager saveLoadManager, VoidEvent playMainMenuMusic, StringVariable navigationRoute
  • UI: SceneField gameplayScene, SceneField tutorialScene, GameObject warningPanel, GameObject tutorialSuggestion, Button continueButton

Behavior

  • Start():
    • navigationRoute = "" (root of UI)
    • continueButton.interactable = SaveLoadManager.HasSavedData()
    • playMainMenuMusic.Raise()
  • OnContinueButtonPressed():
    • shouldLoadGame = true → load gameplayScene.
  • OnPlayButtonPressed():
    • If saved data → show warningPanel.
    • Else if PlayerPrefs["HasStartedGame"] == 1shouldLoadGame=false and load gameplay.
    • Else → show tutorialSuggestion prompt.
  • OnTutorialSuggestionConfirmPressed(): shouldLoadGame=false, load gameplay.
  • OnWarningConfirmButtonPressed(): saveLoadManager.ClearAllSavedData(), shouldLoadGame=false, load gameplay.
  • OnWarningCancelButtonPressed(): refresh continueButton.interactable from HasSavedData().
  • OnPlayTutorialButtonPressed(): shouldLoadGame=false, load tutorialScene.
  • OnQuitButtonPressed(): Application.Quit().