Docsv3.31.0
Back to API Reference
Class

ObjModifier

sealed

Places UI prefabs and existing scene objects inline with text. The set of named inline objects available to <obj=name> tags is supplied by an IObjProvider.

Remarks

Parameter: name[,size][,offset][,advance][,lineHeightAbove][,lineHeightBelow][,pivot][,rotation] — the name resolves through Provider. The hierarchy is provider entry → keyed override → default parameters → tag attribute. Size, offset, advance, and line space use em units; pivot is normalized and rotation uses degrees. For scene objects, size reserves layout space and rotation is left unchanged. Built-in providers: InlineObjProvider (default — inline list on the modifier), AssetObjProvider (shared UniTextObjects asset). For dynamic catalogs, implement IObjProvider directly and raise its Changed event when the resolution result changes.
public IObjProvider Provider{ get; set }

Source of named inline objects.

protected INamedCatalog<InlineObject> Catalog{ get }
protected override bool HasRenderable(InlineObject entry)
protected override bool IsSingular(InlineObject entry)
protected override UniTextDirty MemberStage(StateMember member)

Cheapest rebuild stage that carries a change of member — of a catalog entry or of a keyed override — to the screen. Size, pivot and rotation are values this class only forwards to OnMediaShaped, so they default to UniTextDirty.Positions: any value a subclass turns into shaping-slot or positioned-glyph output is stale under UniTextDirty.Mesh, which reuses the positioned glyphs. An override classifies the members its own entry and override types declare, and lowers a forwarded member to UniTextDirty.Mesh only when it consumes that member no earlier than mesh generation.

protected override void ConfigureWrapper(ObjectMediaWrapper wrapper, InlineObject entry, int cluster)

See Also