Skip to content

TextStudio3DText

ClassTextStudio.ThreeDTextStudio.3D
public sealed class TextStudio3DText : MonoBehaviour, ITextStudio3DAuthoring, ITextStudio3DBuilds, ITextStudio3DGlyphs, ITextStudio3DPhysicalLetters

3D text renderer add-on. This component no longer owns text, reveal, placement, animation, font choice, or layout. The central TextStudio.TextStudioText hub and its active text backend are the single source of truth for all of those. This component:

  • Implements TextStudio.ITextStudioRenderer: consumes per-frame TextStudio.TextStudioFrames and renders extruded 3D geometry using per-glyph positions that the active backend computed on the hub.
  • Extracts TTF/OTF outlines from the active backend for glyph extrusion. TMP remains the built-in fallback. A matching TextStudio.ThreeD.Font3D companion can supply embedded outline data without becoming a second font choice. Optional glyph libraries provide prepared geometry.
  • Owns the generated mesh on an auto-managed child GameObject called _TS3D so its UnityEngine.MeshFilter/UnityEngine.MeshRenderer do not collide with another world-space text renderer on the same GO. The source renderer is automatically hidden by the hub whenever this component is attached.
  • Supports ordinary world objects, World Space Canvas, and Screen Space Camera Canvas. Screen Space Overlay has no camera depth, so it is rejected.

Rebuild policy: geometry rebuilds when the resolved text, style, layers, output mode, or font identity change. Per-frame work otherwise is just vertex streaming against the existing TextStudio.ThreeD.AnimatedCombinedMesh.

public TextStudio3DGeometryValidationReport ValidateCurrentGeometry()

Validates the final per-glyph geometry produced by the most recent topology build, including post-geometry module output. This is an explicit diagnostic operation and is never run automatically during normal rendering.

Returns

TextStudio.ThreeD.TextStudio3DGeometryValidationReport

TryGetGlyphRange(int, int, out TextStudio3DGlyphRange)

Section titled “TryGetGlyphRange(int, int, out TextStudio3DGlyphRange)”
public bool TryGetGlyphRange(int startVisibleGlyphIndex, int count, out TextStudio3DGlyphRange range)

Creates a topology-versioned range over consecutive Text Studio visible-glyph identities. The requested range must fit completely inside the current visible text.

Parameters

Name Type
startVisibleGlyphIndex System.Int32
count System.Int32
range TextStudio.ThreeD.TextStudio3DGlyphRange

Returns

System.Boolean

TryGetAllGlyphs(out TextStudio3DGlyphRange)

Section titled “TryGetAllGlyphs(out TextStudio3DGlyphRange)”
public bool TryGetAllGlyphs(out TextStudio3DGlyphRange range)

Creates a topology-versioned range covering all currently visible glyphs.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange

Returns

System.Boolean

IsGlyphRangeCurrent(TextStudio3DGlyphRange)

Section titled “IsGlyphRangeCurrent(TextStudio3DGlyphRange)”
public bool IsGlyphRangeCurrent(TextStudio3DGlyphRange range)

Reports whether a range still belongs to this renderer’s current topology.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange

Returns

System.Boolean

public TextStudio3DGlyphHandleCollection GetGlyphHandles(TextStudio3DGlyphRange range)

Returns an allocation-free enumerable over every generated layer entry selected by a current range.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange

Returns

TextStudio.ThreeD.TextStudio3DGlyphHandleCollection

TryGetGlyphHandle(int, out TextStudio3DGlyphHandle)

Section titled “TryGetGlyphHandle(int, out TextStudio3DGlyphHandle)”
public bool TryGetGlyphHandle(int visibleGlyphIndex, out TextStudio3DGlyphHandle handle)

Returns the first generated layer entry for one Text Studio visible-glyph identity. Use the layer overload when a particular authored layer is required.

Parameters

Name Type
visibleGlyphIndex System.Int32
handle TextStudio.ThreeD.TextStudio3DGlyphHandle

Returns

System.Boolean

TryGetGlyphHandle(int, int, out TextStudio3DGlyphHandle)

Section titled “TryGetGlyphHandle(int, int, out TextStudio3DGlyphHandle)”
public bool TryGetGlyphHandle(int visibleGlyphIndex, int layerIndex, out TextStudio3DGlyphHandle handle)

Returns a topology-versioned handle for one visible glyph and authored layer. Handles remain current across visual animation and material changes, and become stale after topology replacement, renderer disablement, or mesh clearing.

Parameters

Name Type
visibleGlyphIndex System.Int32
layerIndex System.Int32
handle TextStudio.ThreeD.TextStudio3DGlyphHandle

Returns

System.Boolean

IsGlyphHandleCurrent(TextStudio3DGlyphHandle)

Section titled “IsGlyphHandleCurrent(TextStudio3DGlyphHandle)”
public bool IsGlyphHandleCurrent(TextStudio3DGlyphHandle handle)

Reports whether a handle still belongs to this renderer’s current topology.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle

Returns

System.Boolean

TryGetGlyphVertexRange(TextStudio3DGlyphHandle, out int, out int)

Section titled “TryGetGlyphVertexRange(TextStudio3DGlyphHandle, out int, out int)”
public bool TryGetGlyphVertexRange(TextStudio3DGlyphHandle handle, out int vertexStart, out int vertexCount)

Tries to resolve a current glyph handle to its contiguous vertex range in combined output.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
vertexStart System.Int32
vertexCount System.Int32

Returns

System.Boolean: False for stale handles or output modes that do not expose a combined vertex range.

ReleasePhysicalLetters(float, Vector3?, Vector3?)

Section titled “ReleasePhysicalLetters(float, Vector3?, Vector3?)”
public void ReleasePhysicalLetters(float mass = 1, Vector3? initialVelocity = null, Vector3? initialAngularVelocity = null)

Releases already-authored Physical Letters with optional initial velocities.

Parameters

Name Type
mass System.Single
initialVelocity System.Nullable{UnityEngine.Vector3}
initialAngularVelocity System.Nullable{UnityEngine.Vector3}
public bool TryGetPhysicalBody(int visibleGlyphIndex, out Rigidbody body)

Resolves the one logical physical body owned by a visible glyph.

Parameters

Name Type
visibleGlyphIndex System.Int32
body UnityEngine.Rigidbody

Returns

System.Boolean

public void ResetPhysicalLetters(bool kinematic = true)

Returns physical letters to their authored transforms.

Parameters

Name Type Description
kinematic System.Boolean Whether restored rigidbodies remain kinematic.
public MeshCollider EnsureMeshCollider(bool convex = false)

Adds (or refreshes) a UnityEngine.MeshCollider on the internal renderer child pointing at TextStudio.ThreeD.TextStudio3DText.CurrentMesh. Call once after the text has stabilised; re-call whenever the text content or extrusion changes. The collider is added to the hidden _TS3D child so it doesn’t conflict with user colliders on the host GameObject.

Parameters

Name Type
convex System.Boolean

Returns

UnityEngine.MeshCollider

public void RemoveMeshCollider()

Removes any MeshCollider previously added by TextStudio.ThreeD.TextStudio3DText.EnsureMeshCollider(System.Boolean).

RaycastGlyph(Ray, float, out TextStudio3DGlyphHandle, out RaycastHit)

Section titled “RaycastGlyph(Ray, float, out TextStudio3DGlyphHandle, out RaycastHit)”
public bool RaycastGlyph(Ray ray, float maxDistance, out TextStudio3DGlyphHandle handle, out RaycastHit hit)

Casts against the current combined mesh and returns a stable visible-glyph/layer handle. Call TextStudio.ThreeD.TextStudio3DText.EnsureMeshCollider(System.Boolean) after topology changes before raycasting.

Parameters

Name Type
ray UnityEngine.Ray
maxDistance System.Single
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
hit UnityEngine.RaycastHit

Returns

System.Boolean

RaycastGlyph(Ray, float, out TextStudio3DGlyphHandle, out MaterialRegion, out RaycastHit)

Section titled “RaycastGlyph(Ray, float, out TextStudio3DGlyphHandle, out MaterialRegion, out RaycastHit)”
public bool RaycastGlyph(Ray ray, float maxDistance, out TextStudio3DGlyphHandle handle, out MaterialRegion materialRegion, out RaycastHit hit)

Casts against the current combined mesh and also reports the semantic material region. Decoration hits resolve to TextStudio.ThreeD.MaterialRegion.Decoration.

Parameters

Name Type
ray UnityEngine.Ray
maxDistance System.Single
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
materialRegion TextStudio.ThreeD.MaterialRegion
hit UnityEngine.RaycastHit

Returns

System.Boolean

SetGlyphColorTint(TextStudio3DGlyphHandle, Color32)

Section titled “SetGlyphColorTint(TextStudio3DGlyphHandle, Color32)”
public bool SetGlyphColorTint(TextStudio3DGlyphHandle handle, Color32 tint)

Overrides the vertex tint for one current visible-glyph/layer handle without rebuilding topology. Set white to clear the handle’s tint.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
tint UnityEngine.Color32

Returns

System.Boolean

SetGlyphColorTint(TextStudio3DGlyphRange, Color32)

Section titled “SetGlyphColorTint(TextStudio3DGlyphRange, Color32)”
public int SetGlyphColorTint(TextStudio3DGlyphRange range, Color32 tint)

Overrides every generated layer entry addressed by a current visible-glyph range. Returns the number of affected glyph-layer entries.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange
tint UnityEngine.Color32

Returns

System.Int32

ClearGlyphColorTint(TextStudio3DGlyphRange)

Section titled “ClearGlyphColorTint(TextStudio3DGlyphRange)”
public int ClearGlyphColorTint(TextStudio3DGlyphRange range)

Clears persistent vertex tints from every generated entry selected by a current glyph range.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange

Returns

System.Int32: The number of affected generated entries, or zero for a stale range.

public void ClearGlyphColorTints()

Clears all persistent per-glyph tints and restores the resolved authored colors.

TryGetSocket(TextStudio3DGlyphHandle, TextStudio3DSocketKind, out TextStudio3DSocketPose)

Section titled “TryGetSocket(TextStudio3DGlyphHandle, TextStudio3DSocketKind, out TextStudio3DSocketPose)”
public bool TryGetSocket(TextStudio3DGlyphHandle handle, TextStudio3DSocketKind kind, out TextStudio3DSocketPose pose)

Resolves a semantic socket against the glyph’s current world-space rendered state. ContourFraction uses the front cap’s longest boundary at fraction zero.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
kind TextStudio.ThreeD.TextStudio3DSocketKind
pose TextStudio.ThreeD.TextStudio3DSocketPose

Returns

System.Boolean

TryGetContourSocket(TextStudio3DGlyphHandle, ContourTube3DSurface, int, float, out TextStudio3DSocketPose)

Section titled “TryGetContourSocket(TextStudio3DGlyphHandle, ContourTube3DSurface, int, float, out TextStudio3DSocketPose)”
public bool TryGetContourSocket(TextStudio3DGlyphHandle handle, ContourTube3DSurface surface, int loopIndex, float fraction, out TextStudio3DSocketPose pose)

Resolves a wrapped normalized distance around one current front or back cap boundary. Boundary zero is the longest; remaining boundaries are ordered by perimeter.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
surface TextStudio.ThreeD.ContourTube3DSurface
loopIndex System.Int32
fraction System.Single
pose TextStudio.ThreeD.TextStudio3DSocketPose

Returns

System.Boolean

TryGetSocket(TextStudio3DGlyphHandle, string, out TextStudio3DSocketPose)

Section titled “TryGetSocket(TextStudio3DGlyphHandle, string, out TextStudio3DSocketPose)”
public bool TryGetSocket(TextStudio3DGlyphHandle handle, string name, out TextStudio3DSocketPose pose)

Resolves the first exact ordinal name match from TextStudio.ThreeD.TextStudio3DText.NamedSockets against the supplied current glyph handle.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
name System.String
pose TextStudio.ThreeD.TextStudio3DSocketPose

Returns

System.Boolean

GetSocketContourLoopCount(TextStudio3DGlyphHandle, ContourTube3DSurface)

Section titled “GetSocketContourLoopCount(TextStudio3DGlyphHandle, ContourTube3DSurface)”
public int GetSocketContourLoopCount(TextStudio3DGlyphHandle handle, ContourTube3DSurface surface)

Returns the current deterministic cap-boundary count for one glyph.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
surface TextStudio.ThreeD.ContourTube3DSurface

Returns

System.Int32

public void RebuildGeometry()

Immediately rebuilds generated geometry on Unity’s main thread from the current text and authoring state.

public TextStudio3DBuildRequest ScheduleGeometryBuild()

Schedules one coalesced topology build for a later component update. Repeated calls before dispatch return the same request. Cancellation succeeds only before dispatch.

Returns

TextStudio.ThreeD.TextStudio3DBuildRequest

CancelGeometryBuild(TextStudio3DBuildRequest)

Section titled “CancelGeometryBuild(TextStudio3DBuildRequest)”
public bool CancelGeometryBuild(TextStudio3DBuildRequest request)

Cancels a scheduled build that has not yet been dispatched to the Text Studio hub. Returns false for foreign, stale, completed, or already-dispatched requests.

Parameters

Name Type
request TextStudio.ThreeD.TextStudio3DBuildRequest

Returns

System.Boolean

GetGeometryBuildRequestState(TextStudio3DBuildRequest)

Section titled “GetGeometryBuildRequestState(TextStudio3DBuildRequest)”
public TextStudio3DBuildRequestState GetGeometryBuildRequestState(TextStudio3DBuildRequest request)

Returns whether a request is pending, completed, canceled, superseded, or unknown to this renderer.

Parameters

Name Type
request TextStudio.ThreeD.TextStudio3DBuildRequest

Returns

TextStudio.ThreeD.TextStudio3DBuildRequestState

public void ResetOutgoingText()

Releases all detached outgoing geometry retained by this renderer.

public bool RegisterFontData(TMP_FontAsset fontAsset, Font3D fontData)

Registers exact prepared outline data for a TMP font loaded after the player starts, such as a font supplied by an AssetBundle or Addressables content. The data must have been prepared from this TMP font’s source before the build.

Parameters

Name Type
fontAsset TMPro.TMP_FontAsset
fontData TextStudio.ThreeD.Font3D

Returns

System.Boolean: True when the matching runtime data was registered.

public bool UnregisterFontData(TMP_FontAsset fontAsset)

Removes data previously registered with TextStudio.ThreeD.TextStudio3DText.RegisterFontData(TMPro.TMP_FontAsset%2cTextStudio.ThreeD.Font3D). Call this before unloading the bundle that owns the TMP font or Font3D asset.

Parameters

Name Type
fontAsset TMPro.TMP_FontAsset

Returns

System.Boolean

public TextStudio3DLayer GetLayerSnapshot(int index)

Creates a detached copy of one authored layer. The method name makes the allocation and ownership boundary explicit; use TextStudio.ThreeD.TextStudio3DText.LayerCount for allocation-free queries.

Parameters

Name Type
index System.Int32

Returns

TextStudio.ThreeD.TextStudio3DLayer

public TextStudio3DLayer[] GetLayerSnapshots()

Creates a detached copy of the complete authored layer stack.

Returns

TextStudio.ThreeD.TextStudio3DLayer[]

public void SetLayers(IReadOnlyList<TextStudio3DLayer> layers)

Replaces the authored layer stack with detached copies and immediately rebuilds geometry.

Parameters

Name Type
layers System.Collections.Generic.IReadOnlyList{TextStudio.ThreeD.TextStudio3DLayer}
public void SetLayer(int index, in TextStudio3DLayer layer)

Replaces one authored layer with a detached copy and immediately rebuilds geometry.

Parameters

Name Type
index System.Int32
layer TextStudio.ThreeD.TextStudio3DLayer
public void InsertLayer(int index, in TextStudio3DLayer layer)

Inserts a detached layer copy at a clamped index and immediately rebuilds geometry.

Parameters

Name Type
index System.Int32
layer TextStudio.ThreeD.TextStudio3DLayer
public void RemoveLayerAt(int index)

Removes the layer at the supplied index when it exists and schedules a geometry rebuild.

Parameters

Name Type
index System.Int32
public void MoveLayer(int sourceIndex, int destinationIndex)

Moves an authored layer while preserving its data and schedules a geometry rebuild.

Parameters

Name Type
sourceIndex System.Int32
destinationIndex System.Int32
public QualityTierSelector GetQualitySettingsSnapshot()

Returns a detached copy of automatic LOD distances, tolerances, and hysteresis settings.

Returns

TextStudio.ThreeD.QualityTierSelector

public void SetQualitySettings(QualityTierSelector settings)

Copies automatic LOD quality settings and schedules output refresh without retaining caller ownership.

Parameters

Name Type
settings TextStudio.ThreeD.QualityTierSelector
public Module3DBase GetModule(int index)

Returns one module reference without allocating.

Parameters

Name Type
index System.Int32

Returns

TextStudio.ThreeD.Module3DBase

public Module3DBase[] GetModulesSnapshot()

Creates a detached copy of the module-order array.

Returns

TextStudio.ThreeD.Module3DBase[]

public void SetModules(IReadOnlyList<Module3DBase> modules)

Replaces the ordered module stack with a defensive reference-array copy and rebuilds geometry.

Parameters

Name Type
modules System.Collections.Generic.IReadOnlyList{TextStudio.ThreeD.Module3DBase}
public void SetModule(int index, Module3DBase module)

Replaces one module reference and rebuilds geometry when the index is valid.

Parameters

Name Type
index System.Int32
module TextStudio.ThreeD.Module3DBase
public void InsertModule(int index, Module3DBase module)

Inserts a module at a clamped index and rebuilds geometry.

Parameters

Name Type
index System.Int32
module TextStudio.ThreeD.Module3DBase
public void RemoveModuleAt(int index)

Removes a module at a valid index and rebuilds geometry.

Parameters

Name Type
index System.Int32
public void MoveModule(int sourceIndex, int destinationIndex)

Moves a module within the ordered execution stack and rebuilds geometry.

Parameters

Name Type
sourceIndex System.Int32
destinationIndex System.Int32
public void ApplyPreset(BuiltInExtrudeStyles.Preset preset)

Replaces the authored layer stack with a detached copy of a built-in extrusion recipe.

Parameters

Name Type
preset TextStudio.ThreeD.BuiltInExtrudeStyles.Preset
public static void ClearSharedGeometryCache()

Clears generated glyph geometry shared by all Text Studio 3D renderers. Existing rendered meshes remain intact; later topology builds regenerate entries on demand.

public static void ResetSharedGeometryCacheStatistics()

Resets shared cache hit, miss, insertion, replacement, and eviction counters without removing cached glyph geometry.

public static void ClearSharedAssemblyCache()

Clears immutable combined assemblies shared by identical static text renderers. Active renderers keep their current mesh until they release or modify it.

public void ClearLocalOutlineCache()

Clears this renderer’s dynamic outline and codepoint lookup entries without altering its current mesh or reparsing source fonts. Cache counters are preserved for diagnostics.

public void ResetLocalOutlineCacheStatistics()

Resets local provider/cache counters without removing parsed data.

public TextStudio3DPrewarmResult PrewarmCharacters(string characters, int maxGlyphs = 64)

Generates reusable glyph geometry for unique Unicode scalars without creating or replacing a rendered mesh. Work is synchronously bounded to at most 256 glyphs per call. Configurations that cannot publish durable independent-glyph topology are reported as unsupported because their output intentionally bypasses the shared cache.

Parameters

Name Type
characters System.String
maxGlyphs System.Int32

Returns

TextStudio.ThreeD.TextStudio3DPrewarmResult

public TextStudio3DPrewarmResult PrewarmCurrentOutput(int maxGlyphs = 256)

Warms the exact glyph records currently published by the active text backend, preserving shaped glyph IDs, fallback faces, ligatures, and supplementary Unicode scalars.

Parameters

Name Type
maxGlyphs System.Int32

Returns

TextStudio.ThreeD.TextStudio3DPrewarmResult

public void ClearRuntimeOverrides()

Clears every non-destructive runtime override and restores authored visibility, geometry, tint, materials, and quality.

ApplyPerformanceProfile(TextStudio3DPerformanceProfile)

Section titled “ApplyPerformanceProfile(TextStudio3DPerformanceProfile)”
public void ApplyPerformanceProfile(TextStudio3DPerformanceProfile profile)

Applies one deterministic workload starting point without changing authored layers, materials, or runtime overrides. Profiles configure output ownership, animation processing, chunk size, and automatic LOD policy; callers can fine-tune afterward.

Parameters

Name Type
profile TextStudio.ThreeD.TextStudio3DPerformanceProfile

SetGlyphMaterial(TextStudio3DGlyphHandle, Material)

Section titled “SetGlyphMaterial(TextStudio3DGlyphHandle, Material)”
public bool SetGlyphMaterial(TextStudio3DGlyphHandle handle, Material material)

Replace the material on a per-letter child object. Only valid in TextStudio.ThreeD.MeshOutputMode.PerLetterGameObjects or TextStudio.ThreeD.MeshOutputMode.PhysicalLetters mode, where each letter has its own MeshRenderer; in CombinedMesh mode use TextStudio.ThreeD.TextStudio3DText.SetGlyphColorTint(TextStudio.ThreeD.TextStudio3DGlyphHandle%2cUnityEngine.Color32) for per-glyph differentiation or switch the output mode.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
material UnityEngine.Material

Returns

System.Boolean

SetGlyphMaterial(TextStudio3DGlyphRange, Material)

Section titled “SetGlyphMaterial(TextStudio3DGlyphRange, Material)”
public int SetGlyphMaterial(TextStudio3DGlyphRange range, Material material)

Replaces all semantic material regions for every generated entry selected by a current glyph range.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange
material UnityEngine.Material

Returns

System.Int32: The number of generated entries updated, or zero for a stale range or unsupported output.

SetGlyphMaterial(TextStudio3DGlyphHandle, MaterialRegion, Material)

Section titled “SetGlyphMaterial(TextStudio3DGlyphHandle, MaterialRegion, Material)”
public bool SetGlyphMaterial(TextStudio3DGlyphHandle handle, MaterialRegion materialRegion, Material material)

Replace one semantic material region on a per-letter or physical-letter child. This can select attached decoration geometry independently from the trim rim.

Parameters

Name Type
handle TextStudio.ThreeD.TextStudio3DGlyphHandle
materialRegion TextStudio.ThreeD.MaterialRegion
material UnityEngine.Material

Returns

System.Boolean

SetGlyphMaterial(TextStudio3DGlyphRange, MaterialRegion, Material)

Section titled “SetGlyphMaterial(TextStudio3DGlyphRange, MaterialRegion, Material)”
public int SetGlyphMaterial(TextStudio3DGlyphRange range, MaterialRegion materialRegion, Material material)

Replaces one semantic material region for every generated entry selected by a current glyph range.

Parameters

Name Type
range TextStudio.ThreeD.TextStudio3DGlyphRange
materialRegion TextStudio.ThreeD.MaterialRegion
material UnityEngine.Material

Returns

System.Int32: The number of generated entries updated, or zero for a stale range or unsupported output.

public TextStudio3DText()

public Mesh CurrentMesh { get; }

The currently rendered combined mesh, or null when the renderer is empty or uses an output mode that does not populate the host combined mesh (TextStudio.ThreeD.MeshOutputMode.ChunkedCombinedMesh, TextStudio.ThreeD.MeshOutputMode.PerLetterGameObjects, or TextStudio.ThreeD.MeshOutputMode.PhysicalLetters). Use to seed colliders, exporters, or LOD reducers without poking the child MeshFilter directly.

Returns

UnityEngine.Mesh

public TextStudio3DStats Stats { get; }

Returns

TextStudio.ThreeD.TextStudio3DStats

public CompiledTextStudio3DStyle CompiledStyle { get; }

Returns

TextStudio.ThreeD.CompiledTextStudio3DStyle

public bool HasActiveLOD { get; }

Returns

System.Boolean

public LODParams ActiveLOD { get; }

Returns

TextStudio.ThreeD.LODParams

public TextStudio3DNamedSocket[] NamedSockets { get; set; }

Named socket definitions shared by every generated glyph entry. The getter and setter copy the array so callers cannot mutate renderer state without an explicit assignment.

Returns

TextStudio.ThreeD.TextStudio3DNamedSocket[]

public ITextStudio3DAuthoring Authoring { get; }

Focused style and authored-geometry view.

Returns

TextStudio.ThreeD.ITextStudio3DAuthoring

public ITextStudio3DBuilds Builds { get; }

Focused geometry build and validation view.

Returns

TextStudio.ThreeD.ITextStudio3DBuilds

public ITextStudio3DGlyphs Glyphs { get; }

Focused stable glyph-handle view.

Returns

TextStudio.ThreeD.ITextStudio3DGlyphs

public ITextStudio3DPhysicalLetters PhysicalLetters { get; }

Focused logical physical-letter view.

Returns

TextStudio.ThreeD.ITextStudio3DPhysicalLetters

public MeshOutputMode OutputMode { get; set; }

Returns

TextStudio.ThreeD.MeshOutputMode

public int ChunkGlyphEntries { get; set; }

Returns

System.Int32

public bool UseGlobalFont { get; set; }

Gets or sets whether the resolved 3D theme explicitly assigns the Text Studio/TMP font. New components keep their Text Object font unless this is enabled.

Returns

System.Boolean

public bool UseThemeStyle { get; set; }

Returns

System.Boolean

public TextStudio3DThemeStyleBinding ThemeStyleBinding { get; set; }

Returns

TextStudio.ThreeD.TextStudio3DThemeStyleBinding

public string ThemeStyleVariationId { get; set; }

Returns

System.String

public TextStudio3DTheme ResolvedTheme { get; }

Returns

TextStudio.ThreeD.TextStudio3DTheme

public bool CanCaptureOutgoingText { get; }

Whether an attached outgoing-motion or outgoing-spawn module can retain the current text.

Returns

System.Boolean

public Font3D FontData { get; set; }

Matching 3D glyph data prepared from the hub’s TMP font. This can embed outline bytes for player builds, but it never replaces Text Studio’s font selection. Data prepared from a different source font is ignored.

Returns

TextStudio.ThreeD.Font3D

public TextStudio3DRuntimeGeometryPolicy RuntimeGeometryPolicy { get; set; }

Controls whether this text object may generate unseen exact glyph variants at runtime.

Returns

TextStudio.ThreeD.TextStudio3DRuntimeGeometryPolicy

public Extrude3DStyle ExtrudeStyle { get; set; }

Returns

TextStudio.ThreeD.Extrude3DStyle

public int LayerCount { get; }

Returns

System.Int32

public Vector3 ExtrusionSweepControlOffset { get; set; }

Component-local quadratic depth-sweep control offset. This affects glyph extrusion and is independent from the sibling TextStudio.TextStudioText placement strategy.

Returns

UnityEngine.Vector3

public Vector3 ExtrusionSweepEndOffset { get; set; }

Component-local depth-sweep endpoint offset in renderer space.

Returns

UnityEngine.Vector3

public int ExtrusionSweepSamples { get; set; }

Axial sample count for the component-local depth-extrusion sweep.

Returns

System.Int32

public IExtrusionPath ExtrusionPath { get; set; }

Optional effective path used by every layer whose body sweep selects TextStudio.ThreeD.BodySweep3DMode.Path. Leave null to use the assigned path asset or inspector-authored quadratic controls. A runtime value assigned here takes priority over TextStudio.ThreeD.TextStudio3DText.ExtrusionPathAsset until it is cleared. Path samples are interpreted in the renderer’s local space.

Returns

TextStudio.ThreeD.IExtrusionPath

public ExtrusionPathAsset ExtrusionPathAsset { get; set; }

Reusable authoring asset used when no runtime path override is assigned.

Returns

TextStudio.ThreeD.ExtrusionPathAsset

public int ChunkCount { get; }

Returns

System.Int32

public int PhysicalBodyCount { get; }

Returns

System.Int32

public TextStudio3DAnimationBackend AnimationBackend { get; set; }

Returns

TextStudio.ThreeD.TextStudio3DAnimationBackend

public int ParallelVertexThreshold { get; set; }

Returns

System.Int32

public bool AutomaticLOD { get; set; }

Returns

System.Boolean

public float CurveTolerance { get; set; }

Returns

System.Single

public TextStudio3DMeshDetailPreset MeshDetailPreset { get; set; }

Returns

TextStudio.ThreeD.TextStudio3DMeshDetailPreset

public int ModuleCount { get; }

Returns

System.Int32

public VariableHolder ModuleVariables { get; set; }

Returns

TextStudio.ThreeD.VariableHolder

public TextStudioText Hub { get; }

Returns

TextStudio.TextStudioText

public static TextStudio3DGeometryCacheStats SharedGeometryCacheStats { get; }

Current occupancy of the process-wide generated glyph geometry cache. The cache is a bounded LRU shared by every Text Studio 3D renderer.

Returns

TextStudio.ThreeD.TextStudio3DGeometryCacheStats

public TextStudio3DOutlineCacheStats LocalOutlineCacheStats { get; }

Diagnostics for this renderer’s parsed primary/fallback providers and their bounded dynamic outline/codepoint caches. Counters survive entry and provider invalidation until TextStudio.ThreeD.TextStudio3DText.ResetLocalOutlineCacheStatistics is called.

Returns

TextStudio.ThreeD.TextStudio3DOutlineCacheStats

public TextStudio3DRuntimeOverrides RuntimeOverrides { get; set; }

Non-destructive runtime-only visibility, depth, tint, material, and quality values. Authored layers and style assets are never modified; assigning a default value clears every override.

Returns

TextStudio.ThreeD.TextStudio3DRuntimeOverrides

public float TopologyEffectRefreshRate { get; set; }

Returns

System.Single

public int TopologyEffectQuantizationSteps { get; set; }

Returns

System.Int32

public bool HasActiveTopologyEffect { get; }

Returns

System.Boolean

public bool IsFrozen { get; }

True when this component is retaining authoring data for a persistent static snapshot. Frozen components do not generate or update runtime geometry.

Returns

System.Boolean

public event Action<TextStudio3DText, TextStudio3DLifecycleEvent> LifecycleChanged

Reports renderer enablement, topology replacement or clearing, disablement, and destruction without allocating per notification.

Returns

System.Action{TextStudio.ThreeD.TextStudio3DText,TextStudio.ThreeD.TextStudio3DLifecycleEvent}