diff --git a/games/BurglinGnomes/plugin/UltraWideFix.cs b/games/BurglinGnomes/plugin/UltraWideFix.cs index fc260e7..24e29e9 100644 --- a/games/BurglinGnomes/plugin/UltraWideFix.cs +++ b/games/BurglinGnomes/plugin/UltraWideFix.cs @@ -125,11 +125,20 @@ namespace BurglinGnomes.UltraWideFix if (canvas.renderMode == RenderMode.WorldSpace) { if (Mathf.Approximately(_worldScale.Value, 1f)) continue; + + var cur = cs.transform.localScale; + // Games hide world-space UI by zeroing its scale. Never cache a + // zero baseline: if we did, multiplying it would pin the canvas + // to zero forever and the UI could never reappear. if (!_scaleBaseline.TryGetValue(id, out var base3)) { - base3 = cs.transform.localScale; + if (cur.x <= 0.0001f) continue; // hidden right now; revisit later + base3 = cur; _scaleBaseline[id] = base3; } + // Respect the game hiding it: leave zeroed canvases alone. + if (cur.x <= 0.0001f) continue; + var want = base3 * _worldScale.Value; if (cs.transform.localScale != want) {