Skip to content
This repository was archived by the owner on Aug 17, 2026. It is now read-only.

US-53.1: UI overhaul settings - #124

Merged
agustinbarbalase merged 9 commits into
mainfrom
us-53.1/ui-overhaul-settings
May 20, 2026
Merged

agustinbarbalase merged 9 commits into
mainfrom
us-53.1/ui-overhaul-settings

Conversation

@nikorsanchez

@nikorsanchez nikorsanchez commented May 18, 2026 •

Copy link
Copy Markdown
Contributor

Added Data types for resolutions menus and deleted from shared the settings menu given each client will have the needed one.

Related PR:

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Overhauls the Settings UI in the shared Unity package: replaces the prior tabbed layout with a sidebar-driven modal (Display + Sound sections), introduces a substantially expanded teal/gold themed stylesheet, and adds new serializable settings models (SettingsData, RefreshRateData) to back the menu.

Changes:

  • Rewrites SettingsMenu.uxml to a sidebar + content-panel layout with new Sound section (volume/music/SFX/mute) and Display section (resolution dropdown, fullscreen toggle).
  • Replaces SettingsMenu.uss contents with a themed design-system (CSS variables, nav buttons, sliders, dividers).
  • Adds new SettingsData and RefreshRateData model classes (with .meta files) under Runtime/Models/Settings/.

Reviewed changes

Copilot reviewed 4 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Runtime/UI/SettingsMenu/Themes/SettingsMenu.uxml New sidebar layout with Display/Sound sections; introduces custom controls (CustomDropdown, GoldSlider).
Runtime/UI/SettingsMenu/Themes/SettingsMenu.uss Full restyle with teal/gold theme, CSS variables, and new component classes.
Runtime/Models/Settings/SettingsData.cs(+.meta) New serializable container for volume/resolution/fullscreen/mute settings.
Runtime/Models/Settings/RefreshRateData.cs(+.meta) New serializable wrapper around Unity's RefreshRate.
Runtime/Models/Settings.meta Folder meta for the new Settings model subfolder.
Files not reviewed (3)
  • Runtime/Models/Settings.meta: Language not supported
  • Runtime/Models/Settings/RefreshRateData.cs.meta: Language not supported
  • Runtime/Models/Settings/SettingsData.cs.meta: Language not supported
Comments suppressed due to low confidence (2)

Runtime/UI/SettingsMenu/Themes/SettingsMenu.uxml:58

  • The custom element <ftr:CustomDropdown> (namespace FeedTheRealm.UI.Common) is referenced here, but no CustomDropdown type exists anywhere in this shared package. Likewise <GoldSlider> (lines 52/55/58) is used without a namespace prefix and is not defined in the package. Since this UXML ships as part of com.feed_the_realm.shared, consuming projects that don't happen to also define these exact types/namespaces will fail to instantiate the Settings menu. Either move the CustomDropdown / GoldSlider types into this package, or replace these usages with built-in ui:DropdownField / ui:Slider elements.
                        <ftr:CustomDropdown name="ResolutionSelect" label="Resolution" class="custom-dropdown"/>
                    </ui:VisualElement>
                    <ui:VisualElement class="setting-row">
                        <ui:Toggle label="Fullscreen" toggle-on-label-click="true" value="true" name="FullscreenToggle" class="setting-toggle"/>
                    </ui:VisualElement>
                </ui:ScrollView>

                <!-- SOUND CONTENT (hidden by default) -->
                <ui:ScrollView name="SoundContent" class="content-section content-section--hidden">
                    <ui:Label text="Sound" class="section-title"/>
                    <ui:VisualElement class="section-divider"/>
                    <ui:VisualElement class="setting-row">
                        <GoldSlider label="Global Volume" name="VolumeSlider" low-value="0" high-value="1" value="1" class="setting-slider"/>
                    </ui:VisualElement>
                    <ui:VisualElement class="setting-row">
                        <GoldSlider label="Music Volume" name="MusicVolumeSlider" low-value="0" high-value="1" value="1" class="setting-slider"/>
                    </ui:VisualElement>
                    <ui:VisualElement class="setting-row">
                        <GoldSlider label="SFX Volume" name="SFXVolumeSlider" low-value="0" high-value="1" value="1" class="setting-slider"/>

Runtime/UI/SettingsMenu/Themes/SettingsMenu.uxml:40

  • The dropdown is given class="custom-dropdown", but the accompanying SettingsMenu.uss defines styles for .setting-dropdown (lines 206–228), not .custom-dropdown. As a result, none of the dropdown styling defined in this stylesheet will apply to the resolution selector. Either rename the class on this element to setting-dropdown (matching the other setting-* classes used in this UXML), or rename the USS rules to .custom-dropdown.
                        <ftr:CustomDropdown name="ResolutionSelect" label="Resolution" class="custom-dropdown"/>

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Runtime/UI/SettingsMenu/Themes/SettingsMenu.uxml Outdated
Comment thread Runtime/Models/Settings/SettingsData.cs
@agustinbarbalase
agustinbarbalase merged commit cc8eb7e into main May 20, 2026
3 checks passed
@agustinbarbalase
agustinbarbalase deleted the us-53.1/ui-overhaul-settings branch May 20, 2026 21:20
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants