This commit is contained in:
Savya Bikram Shah
2026-06-01 14:09:51 +05:45
parent e821d4e65e
commit 82386cae08

View File

@@ -48,7 +48,7 @@ namespace Darkmatter.Services.Capture
disabledCanvases = DisableOtherRootCanvases(paperCanvas);
disabledGraphics = HideNonPaperGraphics(paperRT);
HidePaperOwnGraphics(paperRT, disabledGraphics);
HideBackdropGraphics(paperRT, disabledGraphics);
cam.clearFlags = CameraClearFlags.SolidColor;
cam.backgroundColor = new Color(0f, 0f, 0f, 0f);
@@ -158,16 +158,27 @@ namespace Darkmatter.Services.Capture
return disabled;
}
private static void HidePaperOwnGraphics(Transform paper, List<UnityEngine.UI.Graphic> disabled)
private static void HideBackdropGraphics(Transform paper, List<UnityEngine.UI.Graphic> disabled)
{
if (paper == null) return;
var graphics = paper.GetComponents<UnityEngine.UI.Graphic>();
foreach (var g in graphics)
// Paper root's own graphics (the paper panel itself).
foreach (var g in paper.GetComponents<UnityEngine.UI.Graphic>())
{
if (g == null || !g.enabled) continue;
g.enabled = false;
disabled.Add(g);
}
// Solid-fill backdrops baked into the drawing: Images with no sprite render as a
// plain colored box. Colorable regions always carry a sprite (alpha hit-testing),
// so a null sprite means a backdrop, never art.
foreach (var img in paper.GetComponentsInChildren<UnityEngine.UI.Image>(includeInactive: false))
{
if (img == null || !img.enabled || img.sprite != null) continue;
img.enabled = false;
disabled.Add(img);
}
}
private static Rect ComputeCropRect(GameObject target, int screenW, int screenH)