From 2fb8e88fcf321571b6d04ee7437b622a4817e606 Mon Sep 17 00:00:00 2001 From: soul Date: Fri, 23 Oct 2026 01:40:51 +0200 Subject: [PATCH] ScenarioPicker: find the list's ScrollRect while the panel is still inactive (play mode builds it before showing it); verify builds the real list inactive Co-Authored-By: Claude Sonnet 5.5 --- Assets/Scripts/Editor/ScenarioPickerVerify.cs | 4 +++- Assets/Scripts/UI/ScenarioPicker.cs | 3 ++- .../Fonts & Materials/LiberationSans SDF - Fallback.asset | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Editor/ScenarioPickerVerify.cs b/Assets/Scripts/Editor/ScenarioPickerVerify.cs index 8d464f48e..6816cafc9 100644 --- a/Assets/Scripts/Editor/ScenarioPickerVerify.cs +++ b/Assets/Scripts/Editor/ScenarioPickerVerify.cs @@ -85,12 +85,14 @@ public static class ScenarioPickerVerify var groups = real ? ScenarioPickerCapture.AllGroups() : oneGroup ? new List<(string label, Scenario[] scenarios)> { ("modes", screen.A) } : new List<(string label, Scenario[] scenarios)> { ("modes", screen.A), ("development", screen.B), ("test arenas", screen.C) }; + // The menu builds a panel while it is inactive and shows it afterwards; the picker must find its scroll all the same. + if (real) list.gameObject.SetActive(false); screen.Picker = ScenarioPicker.Show(list, detail, groups, screen.Launched.Add, () => screen.Backs++, menu.Dialog.Confirm); var buttons = list.GetComponentsInChildren(false).Where(button => !button.transform.IsChildOf(detail.transform)).Select(button => button.Button).ToArray(); screen.Rows = buttons.Take(buttons.Length - 1).ToArray(); screen.Back = buttons.Last(); screen.Launch = detail.GetComponentsInChildren