Saltar a contenido

TextRenderer

TextRenderer

El componente TextRenderer renderiza texto en pantalla con amplias opciones de personalización.
Admite tanto fuentes web estándar como fuentes importadas, aunque funciona de forma óptima con fuentes bitmap.
Internamente, genera un texture atlas que contiene todos los caracteres necesarios para el renderizado.
El atlas puede configurarse con rangos de caracteres personalizados, tamaños de fuente y espaciado.

El texto puede personalizarse en cuanto a fuente, color, tamaño, orientación, sombras, espaciado entre letras, altura de línea, opacidad, suavizado y posición. Además, el texto puede rotarse, voltearse y asignarse a capas de renderizado específicas.

Propiedades

Propiedad Tipo Descripción
color string Color del texto.
flipHorizontally boolean Si es true, voltea el texto horizontalmente.
flipVertically boolean Si es true, voltea el texto verticalmente.
font FontFace | string Familia tipográfica a usar.
fontSize number Tamaño de la fuente en píxeles.
height number Altura de la caja invisible donde se renderiza el texto.
layer string Capa de renderizado donde se dibujará el texto.
letterSpacing number Espacio entre caracteres en píxeles.
lineHeight number Altura de la línea en píxeles. Valor por defecto igual al tamaño de fuente.
offset Vector2 Desplazamiento en los ejes X e Y respecto al centro de la entidad.
opacity number Opacidad del texto (valor entre 0 y 1).
orientation TextOrientation Dirección en la que se renderizará el texto.
rotation number Rotación del texto en radianes.
smooth boolean Suavizado de píxeles (no recomendado para fuentes bitmap).
shadow { color: string, offset: Vector2, opacity: number } Configuración de sombra para el texto.
text string Texto a renderizar.
textureAtlas { charRanges: number[], fontSize: number, spacing: number } Configuración del atlas de textura que contiene los caracteres.
width number Ancho de la caja invisible donde se renderiza el texto.

Ejemplo mínimo

const textRenderer = new TextRenderer({
    text: "Hola mundo!",
    fontSize: 24,
    font: "Arial",
});

Ejemplo completo

const textRenderer = new TextRenderer({
    text: "Hello World!",
    color: "#FFFFFF",
    fontSize: 24,
    width: 1920,
    height: 32,
    opacity: 1,
    layer: "TextLayer",
    orientation: TextOrientation.RightCenter,
    shadow: {
        color: "#00FF00",
        offset: new Vector2(3, -3),
        opacity: 0.5,
    },
    textureAtlas: {
        charRanges: [32, 126, 161, 255, 0x3040, 0x309f],
        fontSize: 64,
        spacing: 4,
    },
    font: "Arial",
    flipHorizontally: false,
    flipVertically: false,
    letterSpacing: 0,
    lineHeight: 24,
    offset: new Vector2(0, 0),
    rotation: 0,
    smooth: false,
});

Notas

  • Aunque soporta cualquier tipo de fuente, el mejor rendimiento y calidad visual se obtienen utilizando fuentes bitmap.
  • Los rangos de caracteres (charRanges) permiten incluir caracteres personalizados, por ejemplo, símbolos o caracteres de idiomas no latinos.
  • La propiedad smooth puede ser útil para mejorar texto vectorial o de alta resolución, pero no es recomendable para fuentes bitmap.
  • La lógica de renderizado y generación del texture atlas es gestionada por el sistema que procesa los componentes TextRenderer. El componente únicamente define las propiedades visuales.