Build World-Space Interfaces
Create a Panel, Starter Menu, Button, Toggle, Slider, Progress Bar, List, Dropdown, Input Field, or Selector from GameObject > Text Studio > 3D > World Space UI. Each control uses real Text Studio 3D output and can share inherited fonts, named styles, interaction feedback, events, navigation, and accessibility metadata.
- Pointer Raycaster connects mouse, touch, or ray pointers.
- Navigation Group provides keyboard and controller traversal.
- Control Layout arranges controls in Linear, Grid, Circular, Spline, or Volume forms.
- Control Pool keeps repeated or changing interfaces bounded.
- Optional Input System and XR Interaction Toolkit packages add dedicated adapters.
Open the World Space UI production sample to inspect all controls, visual states, navigation, and accessibility fields in one persisted scene. Toggle, Slider, List, Input Field, and Selector use distinct affordances and clearer interaction states, while the shared Linear, Grid, Circular, Spline, and Volume layout modes are demonstrated and explained separately.
CANVAS AND CAMERA CHOICES
Use ordinary world-space objects for signs, diegetic panels, control rooms, and XR interfaces. Text Studio 3D also supports World Space Canvas and Screen Space Camera content when the Canvas helps organize a HUD or mixed UI. Screen Space Overlay cannot display real 3D geometry correctly, so the editor offers guided conversion instead of silently flattening or hiding the result.
Control foundation and states
Every 3D control combines a Text Studio label, Control Theme, interactable state, validation state, accessibility name and hint, and UnityEvents. Normal, Hover, Focused, Pressed, Selected, Disabled, and Error state flags can combine without losing meaning. Their tint, scale, and depth feedback update without rebuilding text topology.
BUTTONS, INPUTS, PROGRESS, LISTS, AND DROPDOWNS
- Button exposes click, pointer, keyboard, focus, and accessible label behavior.
- Toggle owns a Boolean value, state labels, value-changed event, and selected presentation.
- Slider owns minimum, maximum, value, whole-number mode, step, track, prefix, format, and change events.
- List owns options, selected index or value, selection bounds, navigation, prefixes, and change events.
- Selector owns options, current index, optional wrap, previous or next input, display, and change events.
- Progress Bar owns minimum, maximum, current value, numeric formatting, label presentation, and value-changed events without exposing an interactive drag state.
- Dropdown keeps a compact selected value until opened, then presents options and reports open, index, and option changes.
Input Field
Input Field owns value, placeholder, maximum length, read-only mode, required validation, focus, caret, built-in keyboard path, submit, value-changed, and validation events. Use the optional Input System adapter for project input actions and test Unicode entry with the active font and shaping backend.
MENU FLOW AND OPTION PRESENTATION
Menu Controller owns the current panel, bounded back history, Back, Close, and Close All behavior. Menu Action turns those commands into UnityEvent-friendly components, so a designer can build a complete Settings, Audio, Accessibility, or Equipment flow without a parallel menu framework.
Option Presentation arranges a group as a stable Depth Stack, rotary choice, radial selection, or other authored presentation while keeping selection events and navigation identity consistent. Use it when the spatial arrangement communicates meaning, such as weapons around a radial wheel or audio modes on a dial.
Pointer, navigation, layout, and pools
Pointer Raycaster chooses camera, layers, maximum range, trigger interaction, and built-in mouse behavior. Navigation Group owns ordered keyboard or controller traversal, inactive-control filtering, wrap, first selection, and selection events. Navigation focus remains independent from a List or Selector value.
Control Layout arranges controls as Linear, Grid, Circular, Spline, or Volume with form-specific spacing, rows, columns, radius, angles, orientation, and points. Control Pool bounds prefab reuse and must restore value, validation, focus, events, and visual state before returning an instance.
CONTROL THEMES AND BOUNDED CONTROL POOLING
TextStudio3DControlTheme is the shared interaction treatment for world-space controls. TextStudio3DControlPool reuses complete control prefabs and restores their value, focus, validation, events, and visual state before reuse. Temporary labels, signs, and gameplay feedback use the base TextStudioEmitter with a complete 3D host prefab. Keeping those owners separate prevents a menu pool from becoming a second temporary-text system.
World-space UI production tutorial
- Create a Starter Menu, or create a Panel and add a Button, Toggle, Slider, Progress Bar, List, Dropdown, Input Field, and Selector.
- Assign one Control Theme, choose the inherited theme style for control labels, and verify focus, selection, pointer, disabled, and error combinations.
- Add Pointer Raycaster and Navigation Group, then test mouse, keyboard, and controller focus.
- Connect Menu Controller where the experience has multiple panels. Arrange repeated controls with Control Layout or Option Presentation, then verify narrow, typical, and wide camera framing.
- Add Input System or XR adapters only after the built-in pointer and navigation paths work.
- Fill every accessibility name and hint and test disabled or invalid controls.