Skip to content

Common Game Scenarios

Dialogue and subtitles

Start with By Glyph or By Word, punctuation-aware timing, gentle reveal motion, skippable waits, and short audio cues. Use a marker router for speaker, portrait, camera, and choice events. Reduced Motion should keep timing and meaning without unnecessary travel.

TEMPORARY TEXT AND GAMEPLAY FEEDBACK

Use temporary text when each request is a short-lived event: damage over an enemy, a heal near the player, a status word above a target, a combo tier on the HUD, or a score burst near a reward. TextStudioEmitter owns the reusable instance lifetime while TextStudioText, profiles, effects, motion policy, and the chosen renderer keep the same responsibilities they have for persistent text.

Start from GameObject > Text Studio > Text Emitter. Use the compact + actions to create a complete host and an Emission Preset, or assign the ready-to-customize Damage, Critical, Heal, Status, Combo, and Score assets.

Choose the host by presentation, not by gameplay meaning: Canvas for HUD feedback, world TextMeshPro for in-scene labels, or a complete Text Studio 3D host for extruded feedback. The emitter and preset API stay the same.

Let the preset own the profile, numeric template, shared number format, Active duration or manual dismissal, and None, Sum, or Replace merging. Let the emitter own output space, target following, screen projection, camera facing, stacking, prewarming, capacity, and overflow.

TextStudioEmissionHandle hit = emitter.EmitValue(damagePreset, amount, target);
if (hit.IsValid && damageChanged) hit.SetValue(updatedAmount);
// Dismiss manually only when this presentation is not time-limited.
hit.Dismiss();

Long text, codex pages, and credits

Page Navigator and Auto Scroll Follower keep long content inspectable. Reveal only the visible page, preserve history, and test changing layout at narrow widths.

Localization, RTL, and external dialogue

Keep effect tags around semantic phrases rather than fixed glyph positions. Text Studio preserves resolved text, supports RTL-aware flow, and can receive content from dialogue and localization integrations.

UI Toolkit

Animated UI Toolkit labels now share the same profile-owned effects, typewriter motion, timing, start, loop, and skip behavior as TextMeshPro text. They play automatically when attached; deterministic manual stepping remains available for custom clocks and tests.

UI Builder can author markup, profile, playback, reveal, speed, and loop directly in UXML. Ready-to-copy patterns cover complete UXML, code-created labels, ordinary Label bindings, hover restarts, and focus reveals. Frequently changing labels coalesce replacements until the next update and bypass markup work when no Text Studio features are present.

Combat feedback recipe

  1. Create one Text Emitter and choose a Canvas, world-space, or complete 3D host for the visual result you want.
  2. Assign a semantic Emission Preset such as Damage or Critical, then pair it with a readable profile and short Reveal treatment such as Elastic or Pop.
  3. Configure the numeric template and shared number format, then keep multi-digit values grouped so each event reads as one unit.
  4. Call EmitValue(amount, target). Use Sum or Replace only when the preset, target, group, and merge window describe one deliberate gameplay event.
  5. Test stacking, projection, aggregation, overflow, manual dismissal, simultaneous hits, Reduced Motion, and the smallest target font size. The emitter returns the host after its normal Hide lifecycle completes.

Live HUD recipe

  1. Use SetTextDeferred when the same label may change several times before the next visual update.
  2. Keep the default state still and use a brief effect only when the value meaningfully changes.
  3. Use source-color or authored ranges to isolate units, warning thresholds, or status words.
  4. Avoid rebuilding markup or changing shared profiles every frame.

Subtitle and accessibility recipe

  1. Start with By Word or a readable glyph timing preset.
  2. Use restrained reveal motion, a stable background, sufficient contrast, and a No Motion path.
  3. Keep authored tags around semantic phrases rather than fixed glyph positions so localization remains valid.
  4. Make waits skippable, expose a continue action, and test long translations at narrow widths.
  5. Verify that speaker names, portraits, and dialogue progression remain owned by the dialogue system.

Karaoke recipe

  1. Drive a Color Sweep or Shimmer layer through external progress.
  2. Use source-color selection when speaker colors or lyric sections must remain distinct.
  3. Apply progress to the intended range and resubmit the external effect while it is active.
  4. Add a short release tail only if it improves readability after the sung position passes.

Production dialogue recipe

  1. Let the dialogue system select the next line and Text Studio present the current line.
  2. Route content through TextStudioDialogueSource and keep direct TMP writes disabled.
  3. Use markers for camera, portrait, audio, or quest beats, not for story branching ownership.
  4. Bind continue input to AdvanceOrSkip so the first press completes the line and the next press advances.
  5. Test interruption, disable or enable, repeated lines, locale changes, waits, skip, and end-of-conversation cleanup.