demo scene hierarchy reference

This document lists each GameObject in the Demo Shadow Capture Studio scene and its purpose. Hierarchy is from the scene root down.


Scene roots (top-level)

GameObject
Purpose

Shadow Capture Studio Camera

Main camera (tag: MainCamera). Renders the player view; has Camera, AudioListener, URP camera data, and Physics Raycaster. Referenced by Shadow Capture Studio and Shadow Match System.

EventSystem

Handles UI and input using new Input System:. ShadowMatchInputManager (wires input actions for rotate/tilt/reset/quit).

Directional Light

General scene fill/ambient directional light (low intensity, no shadows). Separate from the shadow-projector light.

Shadow Capture Studio

Holds ShadowCaptureStudio component: level data, source camera, shadow catcher quad, shadow light, interactable for capture, Shadow Match System, display preview, frame bounds, and baking config. Parent of all studio geometry and UI canvas.


Under Shadow Capture Studio

GameObject
Purpose

Canvas

Main UI Canvas (Screen Space – Overlay). Canvas Scaler (reference resolution 1920×1080), GraphicRaycaster. Child: Safe Canvas.

Shadow Match System

Core gameplay: ShadowMatchSystem script – level config, interactable, target shadow display quad, main camera, UI view, shadow catcher quad, shadow capture camera, comparison compute shader, main display RawImage, visualizer material. Runs puzzle state (Idle/Active/Solved) and pixel comparison. Child: Pixel Comparison Camera.

Wall with the frame

Static wall plane that the picture frame sits on;

Wall with no frame

Static wall plane without frame;

Floor

Large floor plane

Interactable Object Wrapper - CAT

Prefab variant instance. The object the player rotates to match the target shadow; has ShadowMatchInteractable. Referenced as “interactable” by Shadow Match System and Shadow Capture Studio.

Directional Realtime Light (Projector for the shadow)

Directional light that casts the shadow onto the shadow catcher. Position/orientation define shadow direction.

fancy_picture_frame_01_capture_canvas

Prefab instance (picture frame with canvas). Contains the frame mesh and Quad Display Canvas Baked; used for baked shadow display and frame snapshot/capture.

Shadow Catcher Quad (Required For Baking and Gameplay)

Quad with Shadow Catcher material; receives realtime shadows for baking and for pixel comparison in gameplay. Referenced by Shadow Capture Studio and Shadow Match System.

Captured Shadow Display Quad

Quad in world space that shows the captured/target shadow in your desired color (e.g. baked result). MeshRenderer; referenced as _targetShadowDisplay by Shadow Match System and as _displayQuadPreview by Shadow Capture Studio. (You can give your target shadow more contrast if you have this enabled along with your frame's baked canvas, but it's not required active if the baked canvas is active.)


Under Shadow Match System

GameObject
Purpose

Pixel Comparison Camera

Camera used to render the shadow catcher into a render texture for GPU pixel comparison (source vs target). Referenced by Shadow Match System. (Must be inactive during gameplay)


Under fancy_picture_frame_01_capture_canvas (prefab)

GameObject
Purpose

fancy_picture_frame_01

The frame's mesh

fancy_picture_frame_01_capture_canvas

The frame's canvas mesh

Quad Display Canvas Baked

Quad that displays the baked shadow texture on the frame. Referenced as _frameSnapshotMeshFilter by Shadow Capture Studio for frame snapshot export. (Activate this and assign the frame export texture to its material to display. It's useful if you want to take your frame export texture into photoshop, design a nice picture around the target shadow, then bring that back into Unity!)


Under Canvas → Safe Canvas

If you want to build for mobile, I recommend to use this asset -> https://assetstore.unity.com/packages/tools/gui/safe-area-helper-130488arrow-up-right Place the SafeArea script onto the Safe Canvas gameobject.

GameObject
Purpose

Shadow Match UI Screen

Prefab instance. Main game UI (e.g. match feedback, fade, optional buttons). Holds ShadowMatchView; referenced as _ui by Shadow Match System. Contains rotation percentage tmp for showing match percentage.

Controls Panel

Semi-transparent panel (Image) anchored to bottom-right; contains Controls TMP.

Source target parent

UI container for the “Source vs. Target” label and the comparison image.


Under Source target parent

GameObject
Purpose

Source Label

Labels the comparison area.

Comparison RawImage

RawImage showing the source-vs-target comparison (e.g. from the pixel comparison pipeline). Referenced as _mainDisplay by Shadow Match System.


Under Controls Panel

GameObject
Purpose

Controls TMP

TextMeshProUGUI listing keyboard and controller bindings (rotate, tilt, reset, quit).


Summary by role

  • Rendering: Shadow Capture Studio Camera, Pixel Comparison Camera, Directional Light, Directional Realtime Light.

  • Shadow pipeline: Shadow Catcher Quad, Captured Shadow Display Quad, Quad Display Canvas Baked, Directional Realtime Light, Target Interactable Object.

  • Gameplay: Shadow Match System, Interactable Object Wrapper - CAT, Shadow Match UI Screen.

  • Authoring / baking: Shadow Capture Studio, Target Object Wrapper Realtime Shadow Caster, fancy_picture_frame_01_capture_canvas.

  • UI: Canvas, Safe Canvas, Shadow Match UI Screen, Controls Panel, Controls TMP, Source target parent, Source Label, Comparison RawImage, rotation percentage tmp.

  • Input: EventSystem (with ShadowMatchInputManager).

  • Environment: Floor, Wall with the frame, Wall with no frame.

Last updated