TextStudio3DText
public sealed class TextStudio3DText : MonoBehaviour, ITextStudio3DAuthoring, ITextStudio3DBuilds, ITextStudio3DGlyphs, ITextStudio3DPhysicalLetters3D 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-frameTextStudio.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
_TS3Dso itsUnityEngine.MeshFilter/UnityEngine.MeshRendererdo 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.
Methods
Section titled “Methods”
ValidateCurrentGeometry()
Section titled “ValidateCurrentGeometry()”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
GetGlyphHandles(TextStudio3DGlyphRange)
Section titled “GetGlyphHandles(TextStudio3DGlyphRange)”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} |
TryGetPhysicalBody(int, out Rigidbody)
Section titled “TryGetPhysicalBody(int, out Rigidbody)”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
ResetPhysicalLetters(bool)
Section titled “ResetPhysicalLetters(bool)”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. |
EnsureMeshCollider(bool)
Section titled “EnsureMeshCollider(bool)”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
RemoveMeshCollider()
Section titled “RemoveMeshCollider()”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.
ClearGlyphColorTints()
Section titled “ClearGlyphColorTints()”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
RebuildGeometry()
Section titled “RebuildGeometry()”public void RebuildGeometry()Immediately rebuilds generated geometry on Unity’s main thread from the current text and authoring state.
ScheduleGeometryBuild()
Section titled “ScheduleGeometryBuild()”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
ResetOutgoingText()
Section titled “ResetOutgoingText()”public void ResetOutgoingText()Releases all detached outgoing geometry retained by this renderer.
RegisterFontData(TMP_FontAsset, Font3D)
Section titled “RegisterFontData(TMP_FontAsset, Font3D)”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.
UnregisterFontData(TMP_FontAsset)
Section titled “UnregisterFontData(TMP_FontAsset)”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
GetLayerSnapshot(int)
Section titled “GetLayerSnapshot(int)”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
GetLayerSnapshots()
Section titled “GetLayerSnapshots()”public TextStudio3DLayer[] GetLayerSnapshots()Creates a detached copy of the complete authored layer stack.
Returns
TextStudio.ThreeD.TextStudio3DLayer[]
SetLayers(IReadOnlyList)
Section titled “SetLayers(IReadOnlyList)”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} |
SetLayer(int, in TextStudio3DLayer)
Section titled “SetLayer(int, in 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 |
InsertLayer(int, in TextStudio3DLayer)
Section titled “InsertLayer(int, in 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 |
RemoveLayerAt(int)
Section titled “RemoveLayerAt(int)”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 |
MoveLayer(int, int)
Section titled “MoveLayer(int, int)”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 |
GetQualitySettingsSnapshot()
Section titled “GetQualitySettingsSnapshot()”public QualityTierSelector GetQualitySettingsSnapshot()Returns a detached copy of automatic LOD distances, tolerances, and hysteresis settings.
Returns
TextStudio.ThreeD.QualityTierSelector
SetQualitySettings(QualityTierSelector)
Section titled “SetQualitySettings(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 |
GetModule(int)
Section titled “GetModule(int)”public Module3DBase GetModule(int index)Returns one module reference without allocating.
Parameters
| Name | Type |
|---|---|
index |
System.Int32 |
Returns
TextStudio.ThreeD.Module3DBase
GetModulesSnapshot()
Section titled “GetModulesSnapshot()”public Module3DBase[] GetModulesSnapshot()Creates a detached copy of the module-order array.
Returns
TextStudio.ThreeD.Module3DBase[]
SetModules(IReadOnlyList)
Section titled “SetModules(IReadOnlyList)”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} |
SetModule(int, Module3DBase)
Section titled “SetModule(int, 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 |
InsertModule(int, Module3DBase)
Section titled “InsertModule(int, 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 |
RemoveModuleAt(int)
Section titled “RemoveModuleAt(int)”public void RemoveModuleAt(int index)Removes a module at a valid index and rebuilds geometry.
Parameters
| Name | Type |
|---|---|
index |
System.Int32 |
MoveModule(int, int)
Section titled “MoveModule(int, int)”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 |
ApplyPreset(Preset)
Section titled “ApplyPreset(Preset)”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 |
ClearSharedGeometryCache()
Section titled “ClearSharedGeometryCache()”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.
ResetSharedGeometryCacheStatistics()
Section titled “ResetSharedGeometryCacheStatistics()”public static void ResetSharedGeometryCacheStatistics()Resets shared cache hit, miss, insertion, replacement, and eviction counters without removing cached glyph geometry.
ClearSharedAssemblyCache()
Section titled “ClearSharedAssemblyCache()”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.
ClearLocalOutlineCache()
Section titled “ClearLocalOutlineCache()”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.
ResetLocalOutlineCacheStatistics()
Section titled “ResetLocalOutlineCacheStatistics()”public void ResetLocalOutlineCacheStatistics()Resets local provider/cache counters without removing parsed data.
PrewarmCharacters(string, int)
Section titled “PrewarmCharacters(string, int)”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
PrewarmCurrentOutput(int)
Section titled “PrewarmCurrentOutput(int)”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
ClearRuntimeOverrides()
Section titled “ClearRuntimeOverrides()”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.
Constructors
Section titled “Constructors”
TextStudio3DText()
Section titled “TextStudio3DText()”public TextStudio3DText()Properties
Section titled “Properties”
CurrentMesh
Section titled “CurrentMesh”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
CompiledStyle
Section titled “CompiledStyle”public CompiledTextStudio3DStyle CompiledStyle { get; }Returns
TextStudio.ThreeD.CompiledTextStudio3DStyle
HasActiveLOD
Section titled “HasActiveLOD”public bool HasActiveLOD { get; }Returns
System.Boolean
ActiveLOD
Section titled “ActiveLOD”public LODParams ActiveLOD { get; }Returns
TextStudio.ThreeD.LODParams
NamedSockets
Section titled “NamedSockets”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[]
Authoring
Section titled “Authoring”public ITextStudio3DAuthoring Authoring { get; }Focused style and authored-geometry view.
Returns
TextStudio.ThreeD.ITextStudio3DAuthoring
Builds
Section titled “Builds”public ITextStudio3DBuilds Builds { get; }Focused geometry build and validation view.
Returns
TextStudio.ThreeD.ITextStudio3DBuilds
Glyphs
Section titled “Glyphs”public ITextStudio3DGlyphs Glyphs { get; }Focused stable glyph-handle view.
Returns
TextStudio.ThreeD.ITextStudio3DGlyphs
PhysicalLetters
Section titled “PhysicalLetters”public ITextStudio3DPhysicalLetters PhysicalLetters { get; }Focused logical physical-letter view.
Returns
TextStudio.ThreeD.ITextStudio3DPhysicalLetters
OutputMode
Section titled “OutputMode”public MeshOutputMode OutputMode { get; set; }Returns
TextStudio.ThreeD.MeshOutputMode
ChunkGlyphEntries
Section titled “ChunkGlyphEntries”public int ChunkGlyphEntries { get; set; }Returns
System.Int32
UseGlobalFont
Section titled “UseGlobalFont”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
UseThemeStyle
Section titled “UseThemeStyle”public bool UseThemeStyle { get; set; }Returns
System.Boolean
ThemeStyleBinding
Section titled “ThemeStyleBinding”public TextStudio3DThemeStyleBinding ThemeStyleBinding { get; set; }Returns
TextStudio.ThreeD.TextStudio3DThemeStyleBinding
ThemeStyleVariationId
Section titled “ThemeStyleVariationId”public string ThemeStyleVariationId { get; set; }Returns
System.String
ResolvedTheme
Section titled “ResolvedTheme”public TextStudio3DTheme ResolvedTheme { get; }Returns
TextStudio.ThreeD.TextStudio3DTheme
CanCaptureOutgoingText
Section titled “CanCaptureOutgoingText”public bool CanCaptureOutgoingText { get; }Whether an attached outgoing-motion or outgoing-spawn module can retain the current text.
Returns
System.Boolean
FontData
Section titled “FontData”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
RuntimeGeometryPolicy
Section titled “RuntimeGeometryPolicy”public TextStudio3DRuntimeGeometryPolicy RuntimeGeometryPolicy { get; set; }Controls whether this text object may generate unseen exact glyph variants at runtime.
Returns
TextStudio.ThreeD.TextStudio3DRuntimeGeometryPolicy
ExtrudeStyle
Section titled “ExtrudeStyle”public Extrude3DStyle ExtrudeStyle { get; set; }Returns
TextStudio.ThreeD.Extrude3DStyle
LayerCount
Section titled “LayerCount”public int LayerCount { get; }Returns
System.Int32
ExtrusionSweepControlOffset
Section titled “ExtrusionSweepControlOffset”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
ExtrusionSweepEndOffset
Section titled “ExtrusionSweepEndOffset”public Vector3 ExtrusionSweepEndOffset { get; set; }Component-local depth-sweep endpoint offset in renderer space.
Returns
UnityEngine.Vector3
ExtrusionSweepSamples
Section titled “ExtrusionSweepSamples”public int ExtrusionSweepSamples { get; set; }Axial sample count for the component-local depth-extrusion sweep.
Returns
System.Int32
ExtrusionPath
Section titled “ExtrusionPath”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
ExtrusionPathAsset
Section titled “ExtrusionPathAsset”public ExtrusionPathAsset ExtrusionPathAsset { get; set; }Reusable authoring asset used when no runtime path override is assigned.
Returns
TextStudio.ThreeD.ExtrusionPathAsset
ChunkCount
Section titled “ChunkCount”public int ChunkCount { get; }Returns
System.Int32
PhysicalBodyCount
Section titled “PhysicalBodyCount”public int PhysicalBodyCount { get; }Returns
System.Int32
AnimationBackend
Section titled “AnimationBackend”public TextStudio3DAnimationBackend AnimationBackend { get; set; }Returns
TextStudio.ThreeD.TextStudio3DAnimationBackend
ParallelVertexThreshold
Section titled “ParallelVertexThreshold”public int ParallelVertexThreshold { get; set; }Returns
System.Int32
AutomaticLOD
Section titled “AutomaticLOD”public bool AutomaticLOD { get; set; }Returns
System.Boolean
CurveTolerance
Section titled “CurveTolerance”public float CurveTolerance { get; set; }Returns
System.Single
MeshDetailPreset
Section titled “MeshDetailPreset”public TextStudio3DMeshDetailPreset MeshDetailPreset { get; set; }Returns
TextStudio.ThreeD.TextStudio3DMeshDetailPreset
ModuleCount
Section titled “ModuleCount”public int ModuleCount { get; }Returns
System.Int32
ModuleVariables
Section titled “ModuleVariables”public VariableHolder ModuleVariables { get; set; }Returns
TextStudio.ThreeD.VariableHolder
public TextStudioText Hub { get; }Returns
TextStudio.TextStudioText
SharedGeometryCacheStats
Section titled “SharedGeometryCacheStats”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
LocalOutlineCacheStats
Section titled “LocalOutlineCacheStats”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
RuntimeOverrides
Section titled “RuntimeOverrides”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
TopologyEffectRefreshRate
Section titled “TopologyEffectRefreshRate”public float TopologyEffectRefreshRate { get; set; }Returns
System.Single
TopologyEffectQuantizationSteps
Section titled “TopologyEffectQuantizationSteps”public int TopologyEffectQuantizationSteps { get; set; }Returns
System.Int32
HasActiveTopologyEffect
Section titled “HasActiveTopologyEffect”public bool HasActiveTopologyEffect { get; }Returns
System.Boolean
IsFrozen
Section titled “IsFrozen”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
Events
Section titled “Events”
LifecycleChanged
Section titled “LifecycleChanged”public event Action<TextStudio3DText, TextStudio3DLifecycleEvent> LifecycleChangedReports renderer enablement, topology replacement or clearing, disablement, and destruction without allocating per notification.
Returns
System.Action{TextStudio.ThreeD.TextStudio3DText,TextStudio.ThreeD.TextStudio3DLifecycleEvent}