Capture home readiness without updating the inactive board presenter

This commit is contained in:
NINI
2026-10-09 00:08:34 +09:00
parent 7e4bf1f5ea
commit b4d88546a2
@@ -285,7 +285,8 @@ namespace MagnetismHeroes.Tests
camera.targetTexture = target; camera.aspect = (float)width / height; camera.targetTexture = target; camera.aspect = (float)width / height;
canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = camera; canvas.planeDistance = .5f; canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = camera; canvas.planeDistance = .5f;
foreach (var ball in _app.Presenter.Balls.Values) ball.SendMessage("Update"); foreach (var ball in _app.Presenter.Balls.Values) ball.SendMessage("Update");
_app.Presenter.SendMessage("LateUpdate"); Canvas.ForceUpdateCanvases(); if (_app.Presenter.gameObject.activeInHierarchy) _app.Presenter.SendMessage("LateUpdate");
Canvas.ForceUpdateCanvases();
var timer = System.Diagnostics.Stopwatch.StartNew(); camera.Render(); timer.Stop(); var timer = System.Diagnostics.Stopwatch.StartNew(); camera.Render(); timer.Stop();
RenderTexture.active = target; image.ReadPixels(new Rect(0, 0, width, height), 0, 0); image.Apply(); RenderTexture.active = target; image.ReadPixels(new Rect(0, 0, width, height), 0, 0); image.Apply();
File.WriteAllBytes(Path.Combine(_evidence, name + ".png"), image.EncodeToPNG()); File.WriteAllBytes(Path.Combine(_evidence, name + ".png"), image.EncodeToPNG());
@@ -312,7 +313,8 @@ namespace MagnetismHeroes.Tests
camera.targetTexture = oldTarget; camera.aspect = oldAspect; RenderTexture.active = oldActive; camera.targetTexture = oldTarget; camera.aspect = oldAspect; RenderTexture.active = oldActive;
canvas.renderMode = oldMode; canvas.worldCamera = oldCamera; canvas.planeDistance = oldPlane; canvas.renderMode = oldMode; canvas.worldCamera = oldCamera; canvas.planeDistance = oldPlane;
Object.DestroyImmediate(image); target.Release(); Object.DestroyImmediate(target); Object.DestroyImmediate(image); target.Release(); Object.DestroyImmediate(target);
_app.Presenter.SendMessage("LateUpdate"); Canvas.ForceUpdateCanvases(); if (_app.Presenter.gameObject.activeInHierarchy) _app.Presenter.SendMessage("LateUpdate");
Canvas.ForceUpdateCanvases();
} }
} }
} }