Module3DBase
public abstract class Module3DBase : ScriptableObjectBase class for Text Studio — 3D modules that plug into the TextStudio.ThreeD.TextStudio3DText
geometry pipeline. Modules are for genuinely 3D-specific concerns that cannot be
expressed as an ITextStudioEffect (which drives per-glyph TRS/alpha/color via the
base animation pipeline) — e.g. contour slicing, depth-layer material overrides, or
post-mesh topology tweaks. Per-frame animation and placement should be authored as
base effects and placement strategies instead.
Methods
Section titled “Methods”
RegisterMaterialRegions(TextStudio3DMaterialRegionRegistry)
Section titled “RegisterMaterialRegions(TextStudio3DMaterialRegionRegistry)”public virtual void RegisterMaterialRegions(TextStudio3DMaterialRegionRegistry regions)Declares provider-owned semantic material regions before geometry callbacks run. Use the
same stable ID with TextStudio.ThreeD.ModuleContext.MaterialRegions during PostGeometry to
assign appended index ranges without changing the nine built-in region values.
Parameters
| Name | Type |
|---|---|
regions |
TextStudio.ThreeD.TextStudio3DMaterialRegionRegistry |
OnAttach(TextStudio3DText)
Section titled “OnAttach(TextStudio3DText)”public virtual void OnAttach(TextStudio3DText host)Called once when the module is first attached to a 3D text component.
Parameters
| Name | Type |
|---|---|
host |
TextStudio.ThreeD.TextStudio3DText |
OnDetach(TextStudio3DText)
Section titled “OnDetach(TextStudio3DText)”public virtual void OnDetach(TextStudio3DText host)Called when the module is removed from a 3D text component.
Parameters
| Name | Type |
|---|---|
host |
TextStudio.ThreeD.TextStudio3DText |
PreGeometry(ModuleContext)
Section titled “PreGeometry(ModuleContext)”public virtual void PreGeometry(ModuleContext context)Called before geometry generation begins. Use to modify contour data.
Parameters
| Name | Type |
|---|---|
context |
TextStudio.ThreeD.ModuleContext |
PostGeometry(ModuleContext)
Section titled “PostGeometry(ModuleContext)”public virtual void PostGeometry(ModuleContext context)Called after geometry generation, before mesh assembly. Use to modify raw mesh data.
Parameters
| Name | Type |
|---|---|
context |
TextStudio.ThreeD.ModuleContext |
PostMeshAssembly(ModuleContext)
Section titled “PostMeshAssembly(ModuleContext)”public virtual void PostMeshAssembly(ModuleContext context)Called after mesh assembly. Use to apply final mesh modifications.
Parameters
| Name | Type |
|---|---|
context |
TextStudio.ThreeD.ModuleContext |
OnInactive(TextStudio3DText)
Section titled “OnInactive(TextStudio3DText)”public virtual void OnInactive(TextStudio3DText host)Called after assembly when an attached post-assembly module is disabled. Lifecycle modules can use this to hide or return previously created output without destroying pools.
Parameters
| Name | Type |
|---|---|
host |
TextStudio.ThreeD.TextStudio3DText |
Constructors
Section titled “Constructors”
Module3DBase()
Section titled “Module3DBase()”protected Module3DBase()Properties
Section titled “Properties”
DisplayName
Section titled “DisplayName”public string DisplayName { get; }Returns
System.String
Enabled
Section titled “Enabled”public bool Enabled { get; set; }Returns
System.Boolean
Priority
Section titled “Priority”public int Priority { get; }Returns
System.Int32
ExecutionStages
Section titled “ExecutionStages”public virtual ModuleExecutionStage ExecutionStages { get; }Pipeline callbacks used by this module. The default is conservative so existing custom modules keep receiving every callback until they declare narrower requirements.
Returns
TextStudio.ThreeD.ModuleExecutionStage
public virtual TextStudio3DModuleRole Roles { get; }Returns
TextStudio.ThreeD.TextStudio3DModuleRole
StableVersion
Section titled “StableVersion”public virtual int StableVersion { get; }Returns
System.Int32
StableHash
Section titled “StableHash”public virtual int StableHash { get; }Returns
System.Int32
RequiredMeshChannels
Section titled “RequiredMeshChannels”public virtual TextStudio3DMeshChannels RequiredMeshChannels { get; }Returns
TextStudio.ThreeD.TextStudio3DMeshChannels
Threading
Section titled “Threading”public virtual TextStudio3DModuleThreading Threading { get; }Returns
TextStudio.ThreeD.TextStudio3DModuleThreading
BoundsBehavior
Section titled “BoundsBehavior”public virtual TextStudio3DBoundsBehavior BoundsBehavior { get; }Returns
TextStudio.ThreeD.TextStudio3DBoundsBehavior
GeometryImpact
Section titled “GeometryImpact”public virtual TextStudio3DGeometryImpact GeometryImpact { get; }Returns
TextStudio.ThreeD.TextStudio3DGeometryImpact
Descriptor
Section titled “Descriptor”public TextStudio3DModuleDescriptor Descriptor { get; }Returns
TextStudio.ThreeD.TextStudio3DModuleDescriptor
RequiresUncachedGeometry
Section titled “RequiresUncachedGeometry”public virtual bool RequiresUncachedGeometry { get; }Whether this module needs isolated glyph geometry instead of shared cached buffers. Contour and post-geometry modules normally do; lifecycle-only modules normally do not.
Returns
System.Boolean