fix: capture Device Simulator rendering via PlayModeView#1766
Merged
hatayama merged 3 commits intoJul 14, 2026
Conversation
Device Simulator uses SimulatorWindow, not GameView, so looking up UnityEditor.GameView left rendering screenshots empty. Resolve the active view through PlayModeView.GetMainPlayModeView and read m_TargetTexture from the PlayModeView declaring type. Co-authored-by: Cursor <cursoragent@cursor.com>
Rendering capture now works for Game View and Device Simulator, so unavailable-texture guidance and comments should mention both instead of GameView-only wording. Co-authored-by: Cursor <cursoragent@cursor.com>
Cover the reflection pitfall that private base fields are invisible to GetField on derived types, and smoke-test member resolution. Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
📝 WalkthroughWalkthroughGameViewBridge now obtains the Play Mode view’s ChangesPlay Mode capture
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant ScreenshotCapture
participant GameViewBridge
participant PlayModeView
ScreenshotCapture->>GameViewBridge: Request render texture
GameViewBridge->>PlayModeView: Invoke GetMainPlayModeView
PlayModeView-->>GameViewBridge: Return main Play Mode view
GameViewBridge->>PlayModeView: Read m_TargetTexture
PlayModeView-->>GameViewBridge: Return RenderTexture
GameViewBridge-->>ScreenshotCapture: Return RenderTexture or null
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs: MasaVault
2026-07-14_シミュレーターモードでのマウスシミュレート調査.mdPR-1 (To-Do 2–9)Summary
GameViewBridgenow resolves the active Play Mode view throughPlayModeView.GetMainPlayModeView()and readsm_TargetTexturefrom the PlayModeView declaring type, so Device Simulator (SimulatorWindow) rendering screenshots work the same as Game View.GetFieldpitfall plus a resolution smoke test.User Impact
uloop screenshot --capture-mode rendering(including--annotate-elements) returns a PNG again, so the annotate →simulate-mouse-uiclick flow unblocks.Test plan
dist/darwin-arm64/uloop compile→ 0 errors / 0 warningsGameViewBridgeTests+EditorWindowCaptureUtilityTestsEditMode → passedSimulateMouseDemoScene): rendering screenshot, annotate-elements, clickClickButton1→[Demo] Clicked 'ClickButton1'feature/simulator-view-support(workflows only run formain/v3-beta). Full GHA runs on the final umbrella →v3-betaPR. Quality here is local verification + review.Notes
RunTestsTestFrameworkResultTests,StaticFacadeStateGuardTests); not caused by this change.Screensize — re-annotate after rotating (verified).