Visual component that renders dynamic text. See the Text guide for more information.

//@input Component.Text textComponent
//@input Asset.Font customFont
//@input vec4 color {"widget":"color"}

script.textComponent.text = "Hello there";
script.textComponent.font = script.customFont;
script.textComponent.size = 30;
script.textComponent.verticalOverflow = VerticalOverflow.Truncate;
// @input Component.Text textComponent
// @input Component.ScreenTransform background

// Reparent the background object to be a child of the Text object
var textObj = script.textComponent.getSceneObject();
script.background.getSceneObject().setParent(textObj);

// Set the background object to be the extentsTarget of the Text object, so it matches the rendered area
script.textComponent.extentsTarget = script.background;
interface Text {
    backgroundSettings: BackgroundSettings;
    capitilizationOverride: CapitilizationOverride;
    colorMask: vec4b;
    depthTest: boolean;
    dropshadowSettings: DropshadowSettings;
    editable: boolean;
    enabled: boolean;
    extentsTarget: ScreenTransform;
    font: Font;
    horizontalAlignment: HorizontalAlignment;
    horizontalOverflow: HorizontalOverflow;
    letterSpacing: number;
    lineSpacing: number;
    meshShadowMode: MeshShadowMode;
    onEditingFinished: event1<string, void>;
    onEditingStarted: event0<void>;
    onEditingUpdated: event1<string, void>;
    outlineSettings: OutlineSettings;
    sceneObject: SceneObject;
    shadowColor: vec4;
    shadowDensity: number;
    showEditingPreview: boolean;
    size: number;
    sizeToFit: boolean;
    stretchMode: StretchMode;
    text: string;
    textFill: TextFill;
    touchHandler: InteractionComponent;
    twoSided: boolean;
    uniqueIdentifier: string;
    verticalAlignment: VerticalAlignment;
    verticalOverflow: VerticalOverflow;
    worldSpaceRect: Rect;
    destroy(): void;
    getRenderOrder(): number;
    getSceneObject(): SceneObject;
    getTransform(): Transform;
    getTypeName(): string;
    isOfType(type: string): boolean;
    isSame(other: ScriptObject): boolean;
    localAabbMax(): vec3;
    localAabbMin(): vec3;
    setRenderOrder(value: number): void;
    snap(camera: Camera): void;
    worldAabbMax(): vec3;
    worldAabbMin(): vec3;
}

Hierarchy (view full)

Properties

backgroundSettings: BackgroundSettings

Settings for drawing a background behind the text.

capitilizationOverride: CapitilizationOverride

Overrides the capitalization of the text rendered.

colorMask: vec4b

Controls the masking of color channels with a vec4b representing each channel with a boolean.

depthTest: boolean

If enabled, the text material will use Depth Testing. Useful when Text exists in 3D space.

dropshadowSettings: DropshadowSettings

Settings for how dropshadow is used in text drawing.

editable: boolean

Makes the Text component editable. When this is enabled the Text can be clicked to open up the device keyboard and edit the contents.

enabled: boolean

If disabled, the Component will stop enacting its behavior.

extentsTarget: ScreenTransform

When a ScreenTransform is present on this SceneObject, and extentsTarget is a child of this SceneObject, extentsTarget will be repositioned to match the exact area this MeshVisual is being rendered. Very useful for Image and Text components.

font: Font

Font asset used.

horizontalAlignment: HorizontalAlignment

When a ScreenTransform is attached to the same SceneObject, this controls how the mesh will be positioned horizontally depending on stretchMode.

horizontalOverflow: HorizontalOverflow

Controls how text should be handled when it goes past the horizontal boundaries defined by the world space rect or ScreenTransform.

letterSpacing: number

Modifies the spacing between letters. Set to 0 by default, which uses the font's normal letter spacing. Negative values will remove space between letters, and positive values will add more space between letters.

lineSpacing: number

Modifies the vertical spacing between lines, as a multiple of lines. 1 will be single spacing, 2 will be double spaced, and 0.5 would be half the normal line height.

meshShadowMode: MeshShadowMode

None = 0, Caster = 1, Receiver = 2

onEditingFinished: event1<string, void>

This event will notify you when the user finishes editing the text.

onEditingStarted: event0<void>

This event will notify you when the input keyboard opens.

onEditingUpdated: event1<string, void>

This event will notify you on every edit to the text while the user is typing.

outlineSettings: OutlineSettings

Settings for how text outline is used in text drawing.

sceneObject: SceneObject

The scene object this component is on.

shadowColor: vec4

Affects the color of shadows being cast by this MeshVisual. The color of the cast shadow is a mix between shadowColor and the material's base texture color. The alpha value of shadowColor controls the mixing of these two colors, with 0 = shadowColor and 1 = shadowColor * textureColor.

shadowDensity: number

Density of shadows cast by this MeshVisual.

showEditingPreview: boolean

Use this property to control whether to show the input preview the keyboard. Note this preview also enables cursor movement.

size: number

Font size used.

sizeToFit: boolean

If enabled, the rendered text will always scale to fit the boundaries defined by the world space rect or ScreenTransform.

stretchMode: StretchMode

When a ScreenTransform is attached to the same SceneObject, this controls how the mesh will be stretched relative to the ScreenTransform's boundaries.

text: string

Text string to be drawn.

textFill: TextFill

Settings for how the text is drawn, such as fill color or texture.

touchHandler: InteractionComponent

Use this property to override the touch handling for when to open the device keyboard when the Text is editable.

twoSided: boolean

Whether the text should be visible in both front and back.

uniqueIdentifier: string
verticalAlignment: VerticalAlignment

When a ScreenTransform is attached to the same SceneObject, this controls how the mesh will be positioned vertically depending on stretchMode.

verticalOverflow: VerticalOverflow

Controls how text should be handled when it goes past the vertical boundaries defined by the world space rect or ScreenTransform.

worldSpaceRect: Rect

Controls the boundaries the text is aligned and wraps within when not using ScreenTransform. Referred to as the Layout Rect in the Inspector panel.

Methods

  • Returns true if the object matches or derives from the passed in type.

    Parameters

    • type: string

    Returns boolean

  • Returns true if this object is the same as other. Useful for checking if two references point to the same thing.

    Parameters

    Returns boolean

  • Sets the order of this Visual in the render queue.

    Parameters

    • value: number

    Returns void

  • Projects screen positions from camera's view onto the mesh's UVs. If the MeshVisual's material uses the same texture as the camera input, the MeshVisual will look identical to the part of the screen it covers.

    Parameters

    Returns void