UniTextRenderData
Raw geometry slice describing a single text/color/sub-mesh render segment.
Remarks
UpdateSubMeshes; world: WorldBatcher) does whatever it needs with this data — either uploads into a reusable Mesh for CanvasRenderer, or copies into its combined-mesh buffers for world-space batching. Array references are valid only until the next collect cycle on the same generator — pooled buffers can be returned or regrown. Consumers must read/copy immediately and not retain references across frames.public GlyphAtlas atlasOverrideOptional atlas binding for materialOverride. When null, the custom material keeps its own texture and does not follow atlas replacements.
The single draw-order axis — the emitting layer's LayerSequence (style-stack position). Every segment (base SDF runs, color, paint-layer sub-meshes, inline media, custom materials) sorts by this, so stacking follows the order layers appear in Styles. The base text / default fill sits at UniTextMeshGenerator.DefaultFillSequence (bottom).
Stable sort key within the same sequence (lower renders first). The base text runs sit at zero ahead of every entry of their sequence at zero or above, so only a negative key draws under them.
The tier of the shared surface material the segment draws with when materialOverride is null: the lightest that renders every quad of the segment.
public Vector3[] verticesVertex positions array (pooled). Read [vertexOffset, vertexOffset+vertexCount).
public Vector4[] uvs0UV0 array (pooled). Must always be valid when vertexCount > 0.
public Color32[] colorsVertex colors array (pooled).
Triangle indices array (pooled). Indices are relative to vertexOffset — they index into this segment's vertex slice, not into the whole vertices array. Read [triangleOffset, triangleOffset+triangleCount).
Number of vertices in this segment (starting at vertexOffset).
Start index in triangles.
When true, uvs1 is valid and should be uploaded.
When true, uvs2 is valid and should be uploaded.
When true, uvs3 is valid and should be uploaded.
