Viewport
The Viewport is the window where you see and edit your scene. It comes in two modes - the Editor tab (the Scene view) with a free 3D camera or a flat 2D view, and the Game tab that renders through your scene's Camera - and each mounted viewport runs its own WebGPU device.
Scene view vs Game view
The Editor and Game tabs are the same viewport component in two modes:
| Editor tab (Scene view) | Game tab | |
|---|---|---|
| Camera | A free fly/orbit camera, or the 2D view | Your scene's active Camera |
| Purpose | Building and inspecting the scene | Watching and playing the running game |
| During Play | Stays a free camera - you can fly around a running scene | Play surface - mouse-look, input, UI |
| Gizmos, outlines, overlays | Shown | Hidden (it is the player's view) |
| Grid | Shown | Hidden |
| Which render layers draw | The Layers menu | The camera's cullingMask |
| Toolbar buttons | 2D, Simulate, ⓘ, ◱, Layers, GPU | ⓘ only |
Each viewport owns its own WebGPU device (initGPU plus a Renderer) and keeps an independent viewpoint: switching from Editor to Game and back restores where each camera was looking. The Scene view renders through its free camera even while the game runs, so selection, gizmos, the collider overlay, and the camera preview keep working during Play.

Camera navigation
All navigation happens with the pointer over the Scene view (3D mode).
| Action | Control |
|---|---|
| Fly-look | Hold right-mouse and move - look around in place |
| Fly move | While flying (right-mouse held): W/S forward/back, A/D strafe, E/Q up/down |
| WASD nav | With the pointer over the view: W/A/S/D move along the look direction, E/Q world up/down |
| Orbit | Alt/Option + drag - orbit around the selection |
| Free-look | Left-drag on empty space |
| Zoom | Scroll wheel |
| Frame selection | F, or double-click an object's row in the Hierarchy |
| Snap the view to an axis | Click an axis of the orientation gizmo in the corner |
While driving WASD, hold Shift to move fast (×4) or Alt to move fine (×0.25); the base speed scales with how far the camera is zoomed out, so navigation stays usable in a tight prop scene and in a large imported world. Because the pointer is over the view, the global W/E/R gizmo shortcuts stand down so W means "forward", not "switch to Move".
Framing (F) tweens the camera to fit the whole object - its geometry, not just its origin - and, if the head-on angle is blocked by something in front, rotates around it to find a clear view rather than zooming inside it. Pressing F on a UI element opens its screen in the Screens tab instead.
The orientation gizmo (top-right corner of the Scene view, 3D only) shows the world X, Y and Z axes as the camera sees them. Click an axis handle to tween the view to look straight down it.
The Scene view's free camera works in any play state, so you can fly around a scene while it runs.
With the pointer over the Scene view, number keys 1–9 address the scene's Cameras in hierarchy order, so key N always lands on the same one:
- N jumps the editor camera onto the Nth camera's world pose - its live pose during Play, which is how you check what a moving follow-camera sees mid-play.
- Shift+N does the reverse: it moves the Nth camera onto the editor camera's current pose. Fly the free camera to the shot you want, press Shift+N, and the game camera is there. It is undoable.
The keys are read from the physical key rather than the character, so they work on any layout and survive Shift (which would otherwise send ! instead of 1). In the 2D view, N centres the view on that camera (and takes an orthographic camera's height) and Shift+N moves the camera's X and Y to the view's centre, keeping its depth.
The 2D Scene view
The 2D button (top-left of the Scene view) switches it to an orthographic view looking down −Z at the XY plane, with +Y up. The setting is saved with the scene, and the 2D framing is kept when you switch back to 3D and return. See 2D Games for building a 2D game around it.
| Action | Control |
|---|---|
| Pan | Middle-drag; right-drag (past 3 px); Space + left-drag; one finger on empty space |
| Zoom about the cursor | Mouse wheel, Ctrl + wheel, trackpad pinch, or two fingers |
| Pan with a trackpad | Two-finger scroll |
| Select | Click; Shift/Cmd/Ctrl + click adds |
| Box-select | Left-drag on empty space; Shift/Cmd/Ctrl adds to the selection |
| Context menu | Right-click without dragging |
- An XY grid is drawn with its spacing in a label (for example
grid 1 u). With snap on the spacing follows the toolbar's Cell value (scaled by powers of ten as you zoom out); with snap off it is a power of ten, a ruler rather than a snap lattice. - The gizmo becomes flat: X, Y and an XY square for Move, a ring about Z for Rotate, X and Y for Scale. A drag moves every selected root object by the same world amount as one undo step, and with snap on Move snaps to the world grid.
- Box-select picks active objects whose mesh's XY bounds overlap the box (on a layer the Layers menu shows), plus Cameras and Lights by their origin. UI elements are not box-selectable.
- Space pans only while the pointer is over the view and the scene is stopped, so it never doubles as the player's jump key.

Selection
- Click an object to select it. Selection uses a GPU picker that returns the frontmost object under the cursor, so clicking a ball resting on a floor selects the ball even where the floor's gizmo axis passes through it.
- Shift / Cmd / Ctrl + click adds to the selection.
- Clicking empty space clears the selection.
- Objects on a render layer the Layers menu hides cannot be clicked or box-selected.
Selected objects show an orange outline that silhouettes the whole selected subtree. Selection stays live during Play. The Hierarchy mirrors whatever you pick here.
Transform gizmos
The active gizmo follows the transform tool chosen in the Toolbar (W Move, E Rotate, R Scale):
- Move - three arrow axes; drag one to slide along it.
- Rotate - three rings; drag one to spin around that axis.
- Scale - three knobs; drag one to scale along that axis (object-local).
Gizmos are world-aligned and drawn at a constant on-screen size, whatever the zoom. Dragging writes the object's local Transform - for a child object, the world-space drag is converted into the child's own frame so it moves the way you expect. While you drag, the Inspector updates live; releasing records a single undo step.
A UI element or screen with no mesh of its own gets no 3D gizmo (its UINode ignores the Transform); you move it with the UI edit layer below or in the Screens tab.
Snapping
Turn on the ⊞ Snap toggle in the Toolbar to snap gizmo drags:
- Move and Scale step by the toolbar's Cell value (default 0.5 world units).
- Rotate steps by 15°.
A press on a gizmo axis that never moves more than 3 px is treated as a click, so you can still select whatever is under the cursor instead of committing a no-op move.

Try it
Select any object and press W, E and R in turn with the pointer over the Scene view. Then turn on ⊞ Snap in the toolbar and drags step by the Cell size.
Adding objects
Right-click empty space (while stopped) to open the add-object context menu:
- Create ▸ Cube, Sphere, Plane, Cylinder, Capsule · Empty · Directional Light, Point Light, Camera · UI ▸ Text, Panel, Button
- Paste (⌘V) - paste a copied object
- Focus Selection (F)
A new object goes where the camera looks: the point on the ground plane (y = 0) under the centre of the view, or the centre of the 2D view at z = 0.
The Hierarchy's Create menu carries the fuller palette: Folder, a 2D ▸ group (Sprite, 2D Camera, Shape 2D, the Render Texture Demo, Game of Life, Ripples, Particle Field and more), UI ▸ Image, and any plugin's create commands.
Drag-drop placement (surface snap)
Drag a mesh or prefab out of the Asset Browser and drop it onto the Scene view to place it surface-snapped under the cursor: Awaken GPU-picks the geometry under the drop point and ray-casts its mesh for the exact hit, so the object lands on the rooftop, table, or terrain you dropped it on (falling back to the ground plane when nothing is hit). Scripts and materials are not scene drops - drag those onto the Inspector instead.
The view's buttons
Stacked in the Scene view's top-left corner (the Game view has only ⓘ):
| Button | What it does |
|---|---|
| 2D | Toggle the 2D Scene view. Saved with the scene. |
| ▶ Simulate / ■ Simulating | Shown only when the scene has a Simulation component. Runs every Simulation while you edit, with no Play, scripts or physics, by setting each component's Simulate in Scene view; lit when all of them are on. One undo step. See Simulations. |
| ⓘ | Toggle the stats overlay for this view (the Game view has its own). |
| ◱ | Toggle the UI edit layer. With it on, a dropdown beside it picks which screen to lay out. |
| Layers | Which render layers the Scene view draws. |
| GPU dropdown | Shown only on a machine with more than one GPU. |
Layers
The Layers button opens a list of the project's render layers: Everything, Nothing, one checkbox per named layer (plus any unnamed layer whose bit is set), and Edit layer names…, which opens Project Settings. Hovering the button shows the current mask (Everything, up to three names, or Mixed (N)).
The Scene view then draws only objects whose MeshRenderer renderLayers share a layer with that mask, and click-select and 2D box-select skip the rest. The mask is a setting for this session; it is not saved with the scene, and it never affects the Game view or the exported game, which draw what each camera's cullingMask says. See Render textures & layers.

GPU picker
On a machine with more than one GPU (a hybrid-graphics laptop), a small GPU dropdown appears in the Scene view. Pick which adapter the editor renders on; switching reloads the page. GPU-driven culling depends on the same preference. See Performance.
Overlays and HUD
Selection overlays
Selecting an object draws editor-only line overlays in the Scene view:
- Colliders - green wireframes for every enabled collider shape on the selection and its descendants (a mesh collider draws its actual triangles), so you can check that a collider wraps its mesh.
- Cameras - the selected camera's frustum and a billboard camera icon.
- Directional lights - a sun icon and a bundle of arrows showing the direction its rays travel, read the same way the renderer reads the light.
- Volumes - a post-process Volume's bounds, plus a dimmer outline at the edge of its blend distance.
Collider debug overlay - F4
Press F4 while a scene is running to toggle the physics debug overlay, which draws, in one pass:
- Every trigger (sensor) collider in cyan, at its physics pose.
- The mesh the player is currently blocked against in green, with a ⛔ blocked by: label naming it (double-click the label to copy the name).
The overlay is Play-only, because colliders exist only while the simulation runs. See Colliders and Physics debugging.
Stats overlay - ⓘ
Click ⓘ to toggle a live performance readout for that view. It groups into:
- Device - GPU name and preference, and whether GPU-driven culling is active, available, or unsupported.
- Performance - FPS, frame time, CPU ms, GPU + present time, cache rebuild ms (flagged when over 1 ms every frame), cull + pack ms, distance-cull count, and shadow/main/post GPU timings when timestamp queries are available.
- Scene - render resolution and DPR, triangles, vertices, draw calls, main batches and instances, merged static batches, shadow draws and cascades, point-shadow slots (when a light holds one), object count, and skinned meshes per frame.
- Memory - mesh bytes, script-generated mesh bytes (when a script built any), texture source bytes, and GPU-compressed VRAM for the textures this scene uses.
Double-click the stats block to copy it to the clipboard, with the static-batching and shadow settings appended so a pasted readout explains itself. See Performance.

Camera preview
Select an active Camera in the Scene view and a preview inset appears in the top-right corner showing what that camera sees, drawn with its own culling mask. A camera whose Target texture is a render texture previews that texture instead, fitted to the inset.
In-game UI overlay
UI elements (UINode entities - text, panels, buttons, images) render as an overlay in both views. The runtime overlay's buttons fire only in the Game view, so they do not swallow your clicks while you edit. In the Scene view the UI edit layer sits on top and makes the same elements selectable and draggable.
UI edit layer - ◱
The ◱ button (Scene view only) toggles direct editing of the screen-space UI. It starts off (so the 3D view opens as a 3D view, not under a ghosted pause menu), and its state is remembered in this browser. With it on:
- Click a HUD element to select it (the Hierarchy and Inspector follow the pick).
- Drag the selected element's body to move it.
- Drag one of its eight resize handles to resize it.
- Elements hidden one at a time show as ghosts. A screen picker beside ◱ (shown when the scene has at least one screen) chooses All UI (ghosted) or one screen, listed as
Name (hidden)when it is hidden, to lay out on its own over the live 3D render.
Each move or resize writes back to the UINode and records one undo step per gesture. When HUD scaling is on, the drag accounts for the scale factor so an element lands where you drop it. Turn ◱ off to orbit and fly over a busy HUD without its elements catching the pointer.
Behaviour during Play
- The Scene view keeps its free camera, selection, gizmos, and overlays - it is a live inspector on the running scene. Keys pressed with the pointer over it drive the editor camera, not the game.
- The Game view is play-driven: left-click locks the pointer for FPS-style mouse-look, as the shipped player does, unless the game called
api.input.setPointerLockEnabled(false), in which case clicks, the cursor position, the wheel and touches go to the game directly. Keyboard input feeds your scripts. - Because Play is a sandbox, edits you make in the Scene view are cached and kept or discarded when you Stop - see the Toolbar keep-or-discard prompt.
- Press F9 in either view to save a PNG screenshot of the active viewport.
See also
- Toolbar & Menus - transform tools, snap, and playback
- Hierarchy - the selection this view mirrors, and the full Create menu
- 2D Games - building a game around the 2D view
- Camera - how the Game view chooses its camera
- Keyboard Shortcuts - every navigation and gizmo key