Commit 451c6b7e authored by SherryChaos's avatar SherryChaos

Ensure MainMenu buttons uniform width

Add EnsureButtonsWidth to MainMenu: collects SelectionButton_MainMenu children (cached), computes the maximum preferred width and applies it to all buttons (with null checks). Invoke EnsureButtonsWidth during MainMenu initialization and from UIManager after language initialization so menu buttons are sized consistently at startup.
parent b2ce24c3
...@@ -182,6 +182,7 @@ namespace MDPro3 ...@@ -182,6 +182,7 @@ namespace MDPro3
Program.instance.UnloadUnusedAssets(); Program.instance.UnloadUnusedAssets();
InitializeLanguage(); InitializeLanguage();
Program.instance.menu.EnsureButtonsWidth();
Program.instance.cutin.LoadCutins(); Program.instance.cutin.LoadCutins();
Program.instance.mate.LoadMates(); Program.instance.mate.LoadMates();
Program.instance.solo.LoadBots(); Program.instance.solo.LoadBots();
......
...@@ -53,6 +53,7 @@ namespace MDPro3.Servant ...@@ -53,6 +53,7 @@ namespace MDPro3.Servant
servantUI.ResetUI(); servantUI.ResetUI();
StartCoroutine(LoadMyCardNewsAsync()); StartCoroutine(LoadMyCardNewsAsync());
EnsureButtonsWidth();
Program.instance.ReadParams(); Program.instance.ReadParams();
} }
...@@ -147,5 +148,29 @@ namespace MDPro3.Servant ...@@ -147,5 +148,29 @@ namespace MDPro3.Servant
GetUI<MainMenuUI>().News.LoadNews(); GetUI<MainMenuUI>().News.LoadNews();
} }
private SelectionButton_MainMenu[] buttons;
private SelectionButton_MainMenu[] Buttons
=> buttons ??= GetButtons();
private SelectionButton_MainMenu[] GetButtons()
{
if (servantUI == null)
return null;
return transform.GetComponentsInChildren<SelectionButton_MainMenu>(true);
}
public void EnsureButtonsWidth()
{
if (Buttons == null)
return;
var widths = new float[Buttons.Length];
for (int i = 0; i < Buttons.Length; i++)
widths[i] = buttons[i].GetPreferredWidth();
var maxWidth = Mathf.Max(widths);
foreach(var button in Buttons)
button.SetWidth(maxWidth);
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment