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")
.