HUDSettings is a lightweight, plug-and-play Unity package that combines two clear, well-structured singletons—HudManager and SettingsManager—to give you robust UI navigation and in-game configuration with minimal setup.
It mainly include two managers:
ShowPanel/ShowParentPanel)—to handle all panel switching.SetX and OnXChanged events.Furthermore, versioning safeguards let you bump a constant to reset defaults when your schema changes.
The HudManager class is a singleton MonoBehaviour designed to manage UI panels both in menu and in-game contexts. In a gameplay scene, the isPause panel takes priority for handling pause and resume behavior, ensuring a smooth transition between gameplay and pause screens.
isMenu = true)| Panel Name | isRoot | isPause | ParentName | OpenButton | ReturnButton |
|---|---|---|---|---|---|
| Menu | true | false | — | — | — |
| Settings | false | false | “Menu” | SettingsButton (located in Menu panel) | BackToMenuButton (located in Settings panel) |
| AudioSettings | false | false | “Settings” | AudioButton (located in Settings panel) | BackToSettingsButton (located in AudioSettings) |
| VideoSettings | false | false | “Settings” | VideoButton (located in Settings panel) | BackToSettingsButton (located in VideoSettings) |
| ControlSettings | false | false | “Settings” | ControlButton (located in Settings panel) | BackToSettingsButton (located in ControlSettings) |
isMenu = false)| Panel Name | isRoot | isPause | ParentName | OpenButton | ReturnButton |
|---|---|---|---|---|---|
| GameHUD | true | false | — | — | — |
| Pause | false | true | “GameHUD” | PauseButton (located in GameHUD panel) | BackToMenuButton (located in Pause panel) |
| Settings | false | false | “Pause” | SettingsButton (located in Pause panel) | BackToPauseButton (located in Settings panel) |
| AudioSettings | false | false | “Settings” | AudioButton (located in Settings panel) | BackToSettingsButton (located in AudioSettings panel) |
| VideoSettings | false | false | “Settings” | VideoButton (located in Settings panel) | BackToSettingsButton (located in VideoSettings panel) |
| ControlSettings | false | false | “Settings” | ControlButton (located in Settings panel) | BackToSettingsButton (located in ControlSettings) |
ShowPanel("Pause").ShowPanel("GameHUD").