Skip to content

Commit 0a42f9c

Browse files
committed
Address newly received feedback
1 parent 13e7e1f commit 0a42f9c

1 file changed

Lines changed: 25 additions & 4 deletions

File tree

Assets/QA/Tests/Core Platform Menu/ReturnToMenuOverlay.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public class ReturnToMenuOverlay : MonoBehaviour
3232
bool m_PanelVisible;
3333
float m_LastToggleTime;
3434

35+
Camera m_HelperCamera;
3536
EventSystem m_OwnEventSystem;
3637
readonly List<GameObject> m_SuspendedRoots = new List<GameObject>();
3738

@@ -179,12 +180,20 @@ void SuspendActiveScene()
179180
m_SuspendedRoots.Add(root);
180181
}
181182
}
183+
184+
if (m_HelperCamera != null)
185+
m_HelperCamera.enabled = true;
186+
182187
ActivateOwnEventSystem();
183188
}
184189

185190
void ResumeActiveScene()
186191
{
187192
DeactivateOwnEventSystem();
193+
194+
if (m_HelperCamera != null)
195+
m_HelperCamera.enabled = false;
196+
188197
foreach (var root in m_SuspendedRoots)
189198
{
190199
if (root != null)
@@ -221,6 +230,17 @@ void DeactivateOwnEventSystem()
221230

222231
void BuildUI()
223232
{
233+
// Helper camera activates while the scene is suspended so Unity doesn't
234+
// show the "No cameras rendering" editor overlay behind the dialog.
235+
var camGo = new GameObject("OverlayCamera");
236+
camGo.transform.SetParent(transform, false);
237+
m_HelperCamera = camGo.AddComponent<Camera>();
238+
m_HelperCamera.clearFlags = CameraClearFlags.SolidColor;
239+
m_HelperCamera.backgroundColor = new Color32(18, 18, 24, 255);
240+
m_HelperCamera.cullingMask = 0;
241+
m_HelperCamera.depth = -100;
242+
m_HelperCamera.enabled = false;
243+
224244
var canvas = gameObject.AddComponent<Canvas>();
225245
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
226246
canvas.sortingOrder = 999;
@@ -250,9 +270,11 @@ void BuildMenuButton()
250270
m_MenuButtonRect.anchoredPosition = new Vector2(16, -16);
251271
m_MenuButtonRect.sizeDelta = new Vector2(120, 44);
252272

253-
// Button component provides visual hover/press feedback. onClick is a
254-
// secondary path for scenes where the EventSystem routes normally; the
255-
// primary click path is the raw polling in Update().
273+
// Button component provides visual hover/press feedback only. No onClick
274+
// listener — the actual click is detected by raw polling in Update() which
275+
// fires on press. Adding onClick would cause a double-toggle (open on
276+
// press via Update, close on release via onClick) if the hold exceeds the
277+
// cooldown window.
256278
var btn = go.AddComponent<Button>();
257279
btn.targetGraphic = img;
258280
var c = btn.colors;
@@ -262,7 +284,6 @@ void BuildMenuButton()
262284
c.fadeDuration = 0.08f;
263285
btn.colors = c;
264286
btn.navigation = new Navigation { mode = Navigation.Mode.None };
265-
btn.onClick.AddListener(TogglePanel);
266287

267288
var txt = new GameObject("Text", typeof(RectTransform));
268289
txt.transform.SetParent(go.transform, false);

0 commit comments

Comments
 (0)