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
TextStudioText hub and its active text backend are the
single source of truth for all of those.
This component:
- Implements
ITextStudioRenderer: consumes per-frameTextStudioFrames 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
Font3Dcompanion 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 AnimatedCombinedMesh.
Methods
Section titled “Methods”
AcquireSurfaceAccess()
Section titled “AcquireSurfaceAccess()”public TextStudio3DSurfaceAccess AcquireSurfaceAccess()Prepares current-surface queries on the next submitted frame. Acquisition may allocate; steady-state queries reuse preparation.
Returns
TextStudio.ThreeD.TextStudio3DSurfaceAccess
CaptureStrokeBuildDiagnostics()
Section titled “CaptureStrokeBuildDiagnostics()”public TextStudio3DStrokeBuildDiagnostics CaptureStrokeBuildDiagnostics()Captures immutable stroke binding, extraction and output diagnostics for currently retained entry meshes, including prepared-library hits. Returns null when this output has no stroke diagnostics. This on-demand inspection allocates outside frame evaluation.
Returns
TextStudio.ThreeD.TextStudio3DStrokeBuildDiagnostics
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
TryGetGlyphHandle(Rigidbody, out TextStudio3DGlyphHandle)
Section titled “TryGetGlyphHandle(Rigidbody, out TextStudio3DGlyphHandle)”public bool TryGetGlyphHandle(Rigidbody body, out TextStudio3DGlyphHandle handle)Resolves an owned physical body to its current visible glyph and primary rendered layer.
Parameters
| Name | Type |
|---|---|
body |
UnityEngine.Rigidbody |
handle |
TextStudio.ThreeD.TextStudio3DGlyphHandle |
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 MeshCollider on the internal renderer child
pointing at 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 TextStudio3DText.EnsureMeshCollider(bool).
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 TextStudio3DText.EnsureMeshCollider(bool) 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 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.
RaycastSurface(Ray, in TextStudio3DSurfaceQueryOptions, out TextStudio3DSurfaceHit)
Section titled “RaycastSurface(Ray, in TextStudio3DSurfaceQueryOptions, out TextStudio3DSurfaceHit)”public bool RaycastSurface(Ray ray, in TextStudio3DSurfaceQueryOptions options, out TextStudio3DSurfaceHit hit)Tests current submitted geometry. Acquire surface access first; inspect diagnostics to distinguish misses from unavailable evaluation.
Parameters
| Name | Type |
|---|---|
ray |
UnityEngine.Ray |
options |
TextStudio.ThreeD.TextStudio3DSurfaceQueryOptions |
hit |
TextStudio.ThreeD.TextStudio3DSurfaceHit |
Returns
System.Boolean
RaycastSurface(Ray, in TextStudio3DSurfaceQueryOptions, out TextStudio3DSurfaceHit, out TextStudio3DSurfaceQueryDiagnostics)
Section titled “RaycastSurface(Ray, in TextStudio3DSurfaceQueryOptions, out TextStudio3DSurfaceHit, out TextStudio3DSurfaceQueryDiagnostics)”public bool RaycastSurface(Ray ray, in TextStudio3DSurfaceQueryOptions options, out TextStudio3DSurfaceHit hit, out TextStudio3DSurfaceQueryDiagnostics diagnostics)Finds the nearest hit on current submitted geometry and reports why an exact hit was unavailable or missed.
Parameters
| Name | Type |
|---|---|
ray |
UnityEngine.Ray |
options |
TextStudio.ThreeD.TextStudio3DSurfaceQueryOptions |
hit |
TextStudio.ThreeD.TextStudio3DSurfaceHit |
diagnostics |
TextStudio.ThreeD.TextStudio3DSurfaceQueryDiagnostics |
Returns
System.Boolean
TryEvaluateSurface(in TextStudio3DSurfaceReference, out TextStudio3DAttachmentPose)
Section titled “TryEvaluateSurface(in TextStudio3DSurfaceReference, out TextStudio3DAttachmentPose)”public bool TryEvaluateSurface(in TextStudio3DSurfaceReference reference, out TextStudio3DAttachmentPose pose)Evaluates a current triangle reference in the submitted world pose while surface access is held.
Parameters
| Name | Type |
|---|---|
reference |
TextStudio.ThreeD.TextStudio3DSurfaceReference |
pose |
TextStudio.ThreeD.TextStudio3DAttachmentPose |
Returns
System.Boolean
TryEvaluateSurface(in TextStudio3DSurfaceReference, out TextStudio3DAttachmentPose, out TextStudio3DSurfaceQueryStatus)
Section titled “TryEvaluateSurface(in TextStudio3DSurfaceReference, out TextStudio3DAttachmentPose, out TextStudio3DSurfaceQueryStatus)”public bool TryEvaluateSurface(in TextStudio3DSurfaceReference reference, out TextStudio3DAttachmentPose pose, out TextStudio3DSurfaceQueryStatus status)Evaluates a current triangle reference and reports why an exact pose is unavailable.
Parameters
| Name | Type |
|---|---|
reference |
TextStudio.ThreeD.TextStudio3DSurfaceReference |
pose |
TextStudio.ThreeD.TextStudio3DAttachmentPose |
status |
TextStudio.ThreeD.TextStudio3DSurfaceQueryStatus |
Returns
System.Boolean
TryCreateSurfaceAttachment(in TextStudio3DSurfaceReference, out TextStudio3DSurfaceAttachment)
Section titled “TryCreateSurfaceAttachment(in TextStudio3DSurfaceReference, out TextStudio3DSurfaceAttachment)”public bool TryCreateSurfaceAttachment(in TextStudio3DSurfaceReference reference, out TextStudio3DSurfaceAttachment attachment)Creates a persistent hit-derived attachment with its own residency lease. A genuine topology edit still invalidates its reference.
Parameters
| Name | Type |
|---|---|
reference |
TextStudio.ThreeD.TextStudio3DSurfaceReference |
attachment |
TextStudio.ThreeD.TextStudio3DSurfaceAttachment |
Returns
System.Boolean
TryEvaluateElectricDischarge(int, int, int, out TextStudio3DElectricDischargeState)
Section titled “TryEvaluateElectricDischarge(int, int, int, out TextStudio3DElectricDischargeState)”public bool TryEvaluateElectricDischarge(int effectIndex, int glyphIndex, int arcIndex, out TextStudio3DElectricDischargeState state)Evaluates a prepared electric arc for a glyph, returning false when no matching prepared effect is available.
Parameters
| Name | Type |
|---|---|
effectIndex |
System.Int32 |
glyphIndex |
System.Int32 |
arcIndex |
System.Int32 |
state |
TextStudio.ThreeD.TextStudio3DElectricDischargeState |
Returns
System.Boolean
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 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
TryAcquireCompanionControl(TextStudio3DCompanionFamily, out TextStudio3DCompanionControl)
Section titled “TryAcquireCompanionControl(TextStudio3DCompanionFamily, out TextStudio3DCompanionControl)”public bool TryAcquireCompanionControl(TextStudio3DCompanionFamily family, out TextStudio3DCompanionControl control)Acquires one family's transient source control. A second owner is rejected instead of overriding it.
Parameters
| Name | Type |
|---|---|
family |
TextStudio.ThreeD.TextStudio3DCompanionFamily |
control |
TextStudio.ThreeD.TextStudio3DCompanionControl |
Returns
System.Boolean
GetOutputRenderers(List)
Section titled “GetOutputRenderers(List)”public int GetOutputRenderers(List<MeshRenderer> results)Clears results and adds the renderers that the current TextStudio3DText.OutputMode generated with geometry: the combined renderer, one per TextStudio3DText.ChunkGlyphEntries glyph entries, one per letter or physical letter, or the combined renderer followed by its generated LOD renderers. The list is current inside the Topology Built TextStudio3DText.LifecycleChanged notification, is empty once the output is cleared, and allocates only when the caller's list grows.
Parameters
| Name | Type |
|---|---|
results |
System.Collections.Generic.List{UnityEngine.MeshRenderer} |
Returns
System.Int32: The number of renderers written.
GetLetterAnchors(List)
Section titled “GetLetterAnchors(List)”public int GetLetterAnchors(List<Transform> results)Clears results and adds the empty anchor transforms that MeshOutputMode.Hybrid output places beside its combined mesh, one per built glyph entry in entry order. Other output modes generate none. Timing and allocation match TextStudio3DText.GetOutputRenderers(List<MeshRenderer>).
Parameters
| Name | Type |
|---|---|
results |
System.Collections.Generic.List{UnityEngine.Transform} |
Returns
System.Int32: The number of anchors written.
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 a cancellable topology build. Detached, cacheable glyph stages run on a worker; Unity-dependent modules, grouped layers, prefab repeats, and custom paths run on the main thread. Calls coalesce before dispatch and supersede an in-flight request after dispatch. The previous valid output remains visible until the current geometry is ready for main-thread publication.
Returns
TextStudio.ThreeD.TextStudio3DBuildRequest
CancelGeometryBuild(TextStudio3DBuildRequest)
Section titled “CancelGeometryBuild(TextStudio3DBuildRequest)”public bool CancelGeometryBuild(TextStudio3DBuildRequest request)Cancels a pending request, including worker generation. An active geometry kernel completes its current operation before observing cancellation; no canceled result is published.
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
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 TextStudio3DText.RegisterFontData(TMP_FontAsset, 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 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 quality budgets, finite construction levels, migration records and transition 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 |
RefreshCompanionPoses()
Section titled “RefreshCompanionPoses()”public void RefreshCompanionPoses()Refreshes retained discharge paths after transform or physics changes without rebuilding text geometry.
SetElectricEndpoints(Transform, Transform)
Section titled “SetElectricEndpoints(Transform, Transform)”public void SetElectricEndpoints(Transform source, Transform target)Attaches the main discharge to optional world-space transforms. Null endpoints follow the text contour.
Parameters
| Name | Type |
|---|---|
source |
UnityEngine.Transform |
target |
UnityEngine.Transform |
SetPlasmaEndpoints(Transform, Transform)
Section titled “SetPlasmaEndpoints(Transform, Transform)”public void SetPlasmaEndpoints(Transform source, Transform target)Attaches the primary plasma strand to optional world-space transforms. Null endpoints follow the text contour independently of Electric Arc endpoints.
Parameters
| Name | Type |
|---|---|
source |
UnityEngine.Transform |
target |
UnityEngine.Transform |
TrySampleElectricPath(int, int, float, out Vector3, out float)
Section titled “TrySampleElectricPath(int, int, float, out Vector3, out float)”public bool TrySampleElectricPath(int effectIndex, int arcIndex, float progress, out Vector3 position, out float intensity)Samples the same world-space centerline used by the visible main bolt and its surface illumination.
Parameters
| Name | Type |
|---|---|
effectIndex |
System.Int32 |
arcIndex |
System.Int32 |
progress |
System.Single |
position |
UnityEngine.Vector3 |
intensity |
System.Single |
Returns
System.Boolean
SetEffectSpatialFields(TextStudio3DEffectSpatialField, TextStudio3DEffectSpatialField)
Section titled “SetEffectSpatialFields(TextStudio3DEffectSpatialField, TextStudio3DEffectSpatialField)”public void SetEffectSpatialFields(TextStudio3DEffectSpatialField activation, TextStudio3DEffectSpatialField suppression)Applies the same world-space fields to native surfaces, retained detail, and companions.
Parameters
| Name | Type |
|---|---|
activation |
TextStudio.ThreeD.TextStudio3DEffectSpatialField |
suppression |
TextStudio.ThreeD.TextStudio3DEffectSpatialField |
EvaluateEffectSpatialFields(Vector3)
Section titled “EvaluateEffectSpatialFields(Vector3)”public float EvaluateEffectSpatialFields(Vector3 worldPosition)Returns the combined activation and suppression weight at a world position.
Parameters
| Name | Type |
|---|---|
worldPosition |
UnityEngine.Vector3 |
Returns
System.Single
SetEffectAirflow(Vector3, float, float, float, float)
Section titled “SetEffectAirflow(Vector3, float, float, float, float)”public void SetEffectAirflow(Vector3 force, float time, float turbulence, float spatialScale, float referenceHeight)Sets the world-space air shared by attached plumes and a companion simulation. A zero reference height clears the override.
Parameters
| Name | Type |
|---|---|
force |
UnityEngine.Vector3 |
time |
System.Single |
turbulence |
System.Single |
spatialScale |
System.Single |
referenceHeight |
System.Single |
TryGetCompanionWorldBounds(out Bounds)
Section titled “TryGetCompanionWorldBounds(out Bounds)”public bool TryGetCompanionWorldBounds(out Bounds bounds)Reads the current world bounds of owned rendered geometry, including physical letters and retained effects, without allocating or evaluating attachments.
Parameters
| Name | Type |
|---|---|
bounds |
UnityEngine.Bounds |
Returns
System.Boolean
HasPublishedShapedGeometry(ITextStudioShapedGlyphBackend, string)
Section titled “HasPublishedShapedGeometry(ITextStudioShapedGlyphBackend, string)”public bool HasPublishedShapedGeometry(ITextStudioShapedGlyphBackend backend, string canonicalText)True when nonempty solid output was successfully built from this backend's current shaped revision
and the requested canonical source (hub.Plan.CanonicalText, which retains markup and equals hub.Text only for plain text).
A retained older mesh or a source changed during a build is not current.
Parameters
| Name | Type |
|---|---|
backend |
TextStudio.ITextStudioShapedGlyphBackend |
canonicalText |
System.String |
Returns
System.Boolean
GetCurrentOutputRenderers(List)
Section titled “GetCurrentOutputRenderers(List)”public int GetCurrentOutputRenderers(List<MeshRenderer> results)Current visible output owners for static capture. Unlike GetOutputRenderers, this excludes retained inactive quality variants.
Parameters
| Name | Type |
|---|---|
results |
System.Collections.Generic.List{UnityEngine.MeshRenderer} |
Returns
System.Int32
CaptureMemorySnapshot()
Section titled “CaptureMemorySnapshot()”public TextStudio3DMemorySnapshot CaptureMemorySnapshot()Captures known payload ownership on the main thread. This explicit diagnostic allocates temporary sets and is not a per-frame operation.
Returns
TextStudio.ThreeD.TextStudio3DMemorySnapshot
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
MeshOutputMode.PerLetterGameObjects or MeshOutputMode.PhysicalLetters
mode, where each letter has its own MeshRenderer; in CombinedMesh mode use TextStudio3DText.SetGlyphColorTint(TextStudio3DGlyphHandle, 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.
RegisterAttachmentConsumer(in TextStudio3DAttachmentRequest)
Section titled “RegisterAttachmentConsumer(in TextStudio3DAttachmentRequest)”public TextStudio3DAttachmentSubscription RegisterAttachmentConsumer(in TextStudio3DAttachmentRequest request)Registers an explicitly owned, VFX-independent attachment demand.
Parameters
| Name | Type |
|---|---|
request |
TextStudio.ThreeD.TextStudio3DAttachmentRequest |
Returns
TextStudio.ThreeD.TextStudio3DAttachmentSubscription
TryCopyCompanionEffects(TextStudio3DCompanionEffectRecord[], TextStudio3DCompanionGlyphSemantic[], out TextStudio3DCompanionEffectSnapshot)
Section titled “TryCopyCompanionEffects(TextStudio3DCompanionEffectRecord[], TextStudio3DCompanionGlyphSemantic[], out TextStudio3DCompanionEffectSnapshot)”public bool TryCopyCompanionEffects(TextStudio3DCompanionEffectRecord[] effects, TextStudio3DCompanionGlyphSemantic[] glyphs, out TextStudio3DCompanionEffectSnapshot snapshot)Copies the current exact prepared-effect descriptors into caller-owned arrays.
Parameters
| Name | Type |
|---|---|
effects |
TextStudio.ThreeD.TextStudio3DCompanionEffectRecord[] |
glyphs |
TextStudio.ThreeD.TextStudio3DCompanionGlyphSemantic[] |
snapshot |
TextStudio.ThreeD.TextStudio3DCompanionEffectSnapshot |
Returns
System.Boolean
TryGetCompanionEffectSnapshot(out TextStudio3DCompanionEffectSnapshot)
Section titled “TryGetCompanionEffectSnapshot(out TextStudio3DCompanionEffectSnapshot)”public bool TryGetCompanionEffectSnapshot(out TextStudio3DCompanionEffectSnapshot snapshot)Returns the current prepared effect revisions, clocks and counts when companion transport data is available.
Parameters
| Name | Type |
|---|---|
snapshot |
TextStudio.ThreeD.TextStudio3DCompanionEffectSnapshot |
Returns
System.Boolean
TryEvaluateCompanionEffect(int, in TextStudio3DAttachmentSample, in TextStudio3DAttachmentPose, out TextStudio3DCompanionInfluence)
Section titled “TryEvaluateCompanionEffect(int, in TextStudio3DAttachmentSample, in TextStudio3DAttachmentPose, out TextStudio3DCompanionInfluence)”public bool TryEvaluateCompanionEffect(int effectIndex, in TextStudio3DAttachmentSample sample, in TextStudio3DAttachmentPose pose, out TextStudio3DCompanionInfluence influence)Evaluates a prepared effect at a current attachment pose, returning false for a stale or foreign sample or unavailable effect.
Parameters
| Name | Type |
|---|---|
effectIndex |
System.Int32 |
sample |
TextStudio.ThreeD.TextStudio3DAttachmentSample |
pose |
TextStudio.ThreeD.TextStudio3DAttachmentPose |
influence |
TextStudio.ThreeD.TextStudio3DCompanionInfluence |
Returns
System.Boolean
EvaluateCompanionSamples(TextStudio3DAttachmentSample[], int, TextStudio3DAttachmentPose[], TextStudio3DCompanionInfluence[], int)
Section titled “EvaluateCompanionSamples(TextStudio3DAttachmentSample[], int, TextStudio3DAttachmentPose[], TextStudio3DCompanionInfluence[], int)”public int EvaluateCompanionSamples(TextStudio3DAttachmentSample[] samples, int count, TextStudio3DAttachmentPose[] poses, TextStudio3DCompanionInfluence[] influences, int effectStride)Evaluates a completed source frame into caller-owned buffers. Influence rows use sampleIndex * effectStride + effectIndex. Invalid samples produce a default pose and empty influences. Returns the current effect count.
Parameters
| Name | Type |
|---|---|
samples |
TextStudio.ThreeD.TextStudio3DAttachmentSample[] |
count |
System.Int32 |
poses |
TextStudio.ThreeD.TextStudio3DAttachmentPose[] |
influences |
TextStudio.ThreeD.TextStudio3DCompanionInfluence[] |
effectStride |
System.Int32 |
Returns
System.Int32
TryEvaluateAttachment(in TextStudio3DAttachmentSample, out TextStudio3DAttachmentPose)
Section titled “TryEvaluateAttachment(in TextStudio3DAttachmentSample, out TextStudio3DAttachmentPose)”public bool TryEvaluateAttachment(in TextStudio3DAttachmentSample sample, out TextStudio3DAttachmentPose pose)Resolves the current animation or released physical-body pose without rebuilding the attachment field.
Parameters
| Name | Type |
|---|---|
sample |
TextStudio.ThreeD.TextStudio3DAttachmentSample |
pose |
TextStudio.ThreeD.TextStudio3DAttachmentPose |
Returns
System.Boolean
Constructors
Section titled “Constructors”
TextStudio3DText()
Section titled “TextStudio3DText()”public TextStudio3DText()Properties
Section titled “Properties”
GeneratedLodOverride
Section titled “GeneratedLodOverride”public TextStudio3DGeneratedLodOverride GeneratedLodOverride { get; set; }Generated LODGroup forcing is exclusively owned here. Direct external ForceLOD calls cannot be observed or restored.
Returns
TextStudio.ThreeD.TextStudio3DGeneratedLodOverride
SurfacePrimaryFallbackActivations
Section titled “SurfacePrimaryFallbackActivations”public ulong SurfacePrimaryFallbackActivations { get; }Returns
System.UInt64
EffectiveGeneratedLodOverride
Section titled “EffectiveGeneratedLodOverride”public int EffectiveGeneratedLodOverride { get; }Returns
System.Int32
CurrentMesh
Section titled “CurrentMesh”public Mesh CurrentMesh { get; }The renderer-owned authored combined mesh, or null for output modes without one. Physics and persistent surface queries retain this topology when automatic quality displays a reduced variant. Use TextStudio3DText.CurrentRenderedMesh for a visual snapshot. Returned meshes are borrowed views; instantiate a copy before mutation.
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
ImageAppearance
Section titled “ImageAppearance”public TextStudio3DImageAppearance ImageAppearance { get; set; }Existing serialized content retains monochrome geometry. Native appearance requires exact owned images.
Returns
TextStudio.ThreeD.TextStudio3DImageAppearance
ImageFallback
Section titled “ImageFallback”public TextStudio3DImageFallback ImageFallback { get; set; }Explicit response when the shaping source cannot provide a complete exact image.
Returns
TextStudio.ThreeD.TextStudio3DImageFallback
ImageTracePolicy
Section titled “ImageTracePolicy”public TextStudio3DImageTracePolicy ImageTracePolicy { get; set; }Image silhouette error and deterministic preparation work limits in EM space.
Returns
TextStudio.ThreeD.TextStudio3DImageTracePolicy
ImageSourceDiagnostic
Section titled “ImageSourceDiagnostic”public string ImageSourceDiagnostic { get; }Current exact-image failure or explicitly selected monochrome fallback.
Returns
System.String
ElectricDischargeTiming
Section titled “ElectricDischargeTiming”public TextStudio3DElectricDischargeTiming ElectricDischargeTiming { get; set; }Returns
TextStudio.ThreeD.TextStudio3DElectricDischargeTiming
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[]
CompiledAppearancePlan
Section titled “CompiledAppearancePlan”public CompiledTextStudio3DAppearancePlan CompiledAppearancePlan { get; }The current named 3D appearance composition, or null when the text contains no appearance tags.
Returns
TextStudio.ThreeD.CompiledTextStudio3DAppearancePlan
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
StyleSource
Section titled “StyleSource”public TextStudio3DStyleSource StyleSource { get; set; }Chooses inline layers or a linked style without discarding either authored source.
Returns
TextStudio.ThreeD.TextStudio3DStyleSource
StyleBinding
Section titled “StyleBinding”public TextStudio3DStyleBinding StyleBinding { get; set; }Chooses a direct style asset or the resolved theme while retaining both bindings.
Returns
TextStudio.ThreeD.TextStudio3DStyleBinding
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
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 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
BodySweep3DMode.Path. Leave null to use the
assigned path asset or inspector-authored quadratic controls. A runtime value assigned
here takes priority over 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
QualityCamera
Section titled “QualityCamera”public Camera QualityCamera { get; set; }Optional automatic-detail camera. Null considers all active cameras and retains the highest requested detail.
Returns
UnityEngine.Camera
AutomaticLOD
Section titled “AutomaticLOD”public bool AutomaticLOD { get; set; }Returns
System.Boolean
CurveTolerance
Section titled “CurveTolerance”public float CurveTolerance { get; set; }Returns
System.Single
AutoSmoothAngle
Section titled “AutoSmoothAngle”public float AutoSmoothAngle { get; set; }Normal smoothing angle of the retained inline layer stack.
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
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
PreparedEffectStats
Section titled “PreparedEffectStats”public TextStudio3DPreparedEffectStats PreparedEffectStats { get; }Gets the current native 3D effect plan and preparation requirements.
Returns
TextStudio.ThreeD.TextStudio3DPreparedEffectStats
IsGeneratingGeometryInBackground
Section titled “IsGeneratingGeometryInBackground”public bool IsGeneratingGeometryInBackground { get; }True while a scheduled request is generating detached glyph geometry on a worker.
Returns
System.Boolean
ElectricSourceAnchor
Section titled “ElectricSourceAnchor”public Transform ElectricSourceAnchor { get; }Returns
UnityEngine.Transform
ElectricTargetAnchor
Section titled “ElectricTargetAnchor”public Transform ElectricTargetAnchor { get; }Returns
UnityEngine.Transform
PlasmaSourceAnchor
Section titled “PlasmaSourceAnchor”public Transform PlasmaSourceAnchor { get; }Returns
UnityEngine.Transform
PlasmaTargetAnchor
Section titled “PlasmaTargetAnchor”public Transform PlasmaTargetAnchor { get; }Returns
UnityEngine.Transform
VertexUploadPreference
Section titled “VertexUploadPreference”public TextStudio3DVertexUploadPreference VertexUploadPreference { get; set; }Explicit prototype opt-in. Float remains the default; unsupported materials/devices retain float. No native visual or performance qualification is implied.
Returns
TextStudio.ThreeD.TextStudio3DVertexUploadPreference
LastVertexUploadDecision
Section titled “LastVertexUploadDecision”public TextStudio3DVertexUploadDecision LastVertexUploadDecision { get; }The most recent assembly operation's layout decision. A renderer with multiple groups can have different decisions per mesh.
Returns
TextStudio.ThreeD.TextStudio3DVertexUploadDecision
ActivationField
Section titled “ActivationField”public TextStudio3DEffectSpatialField ActivationField { get; }Returns
TextStudio.ThreeD.TextStudio3DEffectSpatialField
SuppressionField
Section titled “SuppressionField”public TextStudio3DEffectSpatialField SuppressionField { get; }Returns
TextStudio.ThreeD.TextStudio3DEffectSpatialField
TopologyEffectSampling
Section titled “TopologyEffectSampling”public TextStudio3DTopologySampling TopologyEffectSampling { get; set; }Returns
TextStudio.ThreeD.TextStudio3DTopologySampling
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
GeometrySourceDiagnostic
Section titled “GeometrySourceDiagnostic”public string GeometrySourceDiagnostic { get; }Actionable failure for an invalid shaped geometry revision; the previous valid solid output is retained.
Returns
System.String
QualityDecision
Section titled “QualityDecision”public TextStudio3DQualityDecision QualityDecision { get; }The last automatic decision. A retained authored fallback does not imply that an unknown error was qualified.
Returns
TextStudio.ThreeD.TextStudio3DQualityDecision
QualityDiagnostic
Section titled “QualityDiagnostic”public string QualityDiagnostic { get; }Returns
System.String
QualityPreparationDiagnostic
Section titled “QualityPreparationDiagnostic”public string QualityPreparationDiagnostic { get; }Returns
System.String
LastQualityCertification
Section titled “LastQualityCertification”public TextStudio3DQualityCertificationDiagnostics LastQualityCertification { get; }Construction cost and bounded work, separate from per-camera selection.
Returns
TextStudio.ThreeD.TextStudio3DQualityCertificationDiagnostics
CurrentRenderedMesh
Section titled “CurrentRenderedMesh”public Mesh CurrentRenderedMesh { get; }The single combined mesh currently chosen for display, including a forced certified level. Physics and surface queries continue to use CurrentMesh. Returned meshes are renderer-owned borrowed views; instantiate a copy before mutation.
Returns
UnityEngine.Mesh
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
CompanionStatistics
Section titled “CompanionStatistics”public TextStudio3DCompanionEvaluationStatistics CompanionStatistics { get; }Returns
TextStudio.ThreeD.TextStudio3DCompanionEvaluationStatistics
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}
CompanionFrameEvaluated
Section titled “CompanionFrameEvaluated”public event Action<TextStudio3DText> CompanionFrameEvaluatedRaised once after a rendered frame has finalized its companion-facing data.
Returns
System.Action{TextStudio.ThreeD.TextStudio3DText}