ZionGames Docs

Home / Zion Modules / Zion Console Menu

๐ŸŽฎ Zion Console Menu

Version 1.1.0 โ€” a complete, controller-ready UI Toolkit menu foundation for Unity 6.

User Guide

Main Components

ZionMenuManager

Registers menu screens, controls navigation history and manages pause sessions.

Standard screen identifiers include:

  • main
  • settings
  • credits
  • pause
  • controls
  • save
  • load

ZionGameFlowBridge

Provides optional built-in scene loading or UnityEvent-based integration for:

  • New Game
  • Continue
  • Resume
  • Return to Main Menu
  • Loading progress
  • Transition failure

ZionConfirmationDialog

Displays Information, Confirmation, Warning and Destructive modal requests above the current menu. It blocks the underlying controls, supports B or Escape cancellation and restores focus when it closes.

SaveMenu and LoadMenu

Display provider-supplied save slots with empty or occupied state, display name, scene name, play time and timestamp. Save supports creating and overwriting data; Load enables only valid occupied slots; Delete is protected by a destructive confirmation.

IZionSaveSlotProvider

Keeps the menu UI independent from the project's persistence format. The provider supplies slot metadata, capability checks and asynchronous Save, Load and Delete operations.

ZionMainMenuScreen

Owns New Game, Continue, Load Game, Settings, Credits and confirmed Quit. It also provides the established connection point for Continue availability.

SetContinueAvailable(bool available)
SetContinueAvailable(int availableSlotCount)
SetContinueLabel(string label)
RefreshContinueState()

ZionPauseMenuScreen

Owns Resume, Save Game, Load Game, Settings, confirmed Return to Main Menu and confirmed Quit. The pause session remains active while a nested menu or confirmation dialog is open.

ZionVirtualCursor

Uses the left stick to control a cursor that renders above the menu screens.

Keep its UIDocument sort order above the rest of the UI. The recommended value is 100; the Confirmation Dialog uses 90.

ZionInputPromptController

Switches prompt text automatically when the active input device changes between keyboard, mouse and gamepad.

ZionSettingsMenuScreen

Provides audio and display settings. Long settings screens can be scrolled with the right stick or triggers while the left stick remains reserved for the virtual cursor. Reset to Defaults opens a confirmation before applying the reset.

ZionInputRebindService

Uses the New Input System interactive rebinding API and stores binding overrides persistently.

Confirmation Dialogs

Version 1.1.0 uses one reusable modal overlay instead of treating a dialog as a normal menu screen. The originating menu remains visible and the navigation stack is preserved.

Dialog type Default focus Typical use
Information Confirm Acknowledgements and non-destructive notices
Confirmation Confirm Ordinary user choices
Warning Confirm or configured action Actions with a notable consequence
Destructive Cancel Delete save, quit and other irreversible actions

Keep the Confirmation Dialog UIDocument at sort order 90, below the virtual cursor at 100 and above the menu and loading layers.

Save and Load Screens

The slot screens present data supplied by IZionSaveSlotProvider. Zion Console Menu owns the UI, focus, confirmation and operation feedback; your provider owns persistence, validation, scene selection and restored gameplay data.

  • Empty slots can be selected for Save but cannot be loaded or deleted.
  • Occupied slots display the provider's display name, scene name, timestamp and play time.
  • CanSave, CanLoad and CanDelete control which operations are available.
  • An occupied Save slot requests overwrite confirmation.
  • Delete uses a Destructive confirmation with Cancel focused first.
  • Successful Save and Delete operations refresh slot state and Continue availability.

Provider Assignment

Assign the same component implementing IZionSaveSlotProvider to Provider Source on both SaveMenu and LoadMenu so both screens display identical slot state.

If the Demo folder is installed and no provider exists, Generate Missing Setup can create Demo Save Provider (Demo Only) and connect it automatically. This PlayerPrefs-backed provider is for testing the three demonstration slots, not production progress.

Operation Results

Save, Load and Delete complete asynchronously with a ZionSaveOperationResult. A failed operation should report a clear result and leave the player on a usable screen.

Audio Settings

The AudioMixer bridge expects the following exposed parameters unless they are renamed in the Inspector:

  • ZionMasterVolume
  • ZionMusicVolume
  • ZionSfxVolume

Music AudioSources should normally output to the Music mixer group. UI and gameplay effects should output to SFX. Both groups should be children of Master.

Display Settings

Desktop display options include:

  • Display mode
  • Resolution
  • Refresh rate
  • VSync
  • Reset to defaults
Test fullscreen modes and resolution changes in a standalone build. The Unity Editor is not authoritative for desktop display behaviour.

Input Rebinding

The Controls screen can expose suitable keyboard and gamepad bindings from your Input Action Asset.

The Zion demonstration intentionally avoids rebinding stick-based Navigate controls because:

  • The left stick controls the virtual cursor.
  • The right stick scrolls long screens.

D-pad and keyboard Navigate, Submit, Cancel and Pause actions remain suitable for interactive rebinding.

Default Controller Behaviour

Control Default purpose
Left stick Virtual cursor
Right stick Scroll long screens
LT / RT Scroll long screens
D-pad UI navigation
A / Enter Submit
B / Escape Cancel or Back
Start / Pause action Open the Pause Menu