SpriteRenderer

El componente SpriteRenderer renderiza imágenes 2D (sprites) en pantalla.
Ofrece funcionalidades como recorte de imagen (slice), escalado, rotación, volteo, opacidad, enmascaramiento de color, tintado y renderizado en capas específicas.
Las imágenes pueden renderizarse con dimensiones personalizadas, desplazarse con un offset e incluso repetirse (tiled) en un área.

Propiedades

PropiedadTipoDescripción
layerstringCapa de renderizado donde se dibujará el sprite.
imageHTMLImageElement | stringImagen a renderizar. Puede ser un objeto de imagen o una ruta de archivo.
sliceSliceRecorte de la imagen usando coordenadas desde la esquina superior izquierda.
smoothbooleanSi es true, aplica suavizado de píxeles (no recomendado para pixel art).
offsetVector2Desplazamiento en los ejes X e Y respecto al centro de la entidad.
flipHorizontallybooleanSi es true, voltea la imagen horizontalmente.
flipVerticallybooleanSi es true, voltea la imagen verticalmente.
rotationnumberRotación de la imagen en radianes.
opacitynumberOpacidad de la imagen, valor entre 0 y 1.
maskColorstringColor de máscara que se aplicará sobre la imagen.
maskColorMixnumberIntensidad de la mezcla de la máscara, valor entre 0 y 1.
tintColorstringColor con el que se tintará la imagen.
scaleVector2Escala de la imagen en los ejes X e Y.
widthnumberAncho personalizado de la imagen (sobrescribe el ancho original).
heightnumberAlto personalizado de la imagen (sobrescribe el alto original).
tiledVector2Define cuántas veces se repetirá la imagen horizontal y verticalmente.

Ejemplo mínimo

const spriteRenderer = new SpriteRenderer({
    image: "miSprite.png",
});

Ejemplo completo

const spriteRenderer = new SpriteRenderer({
    image: this.assetManager.getImage("image.png"),
    width: 1920,
    height: 1080,
    offset: new Vector2(0, 0),
    flipHorizontally: false,
    flipVertically: false,
    rotation: 0,
    opacity: 1,
    maskColor: "#FF0000",
    maskColorMix: 0,
    tintColor: "#00FF00",
    layer: "Default",
    slice: { x: 0, y: 0, width: 1920, height: 1080 },
    scale: new Vector2(1, 1),
    tiled: new Vector2(1, 1),
    smooth: false,
});

Notas

  • Las capas de renderizado (layer) determinan qué cámaras pueden ver este sprite (según las capas configuradas en cada Camera).
  • El suavizado de píxeles (smooth) puede mejorar gráficos vectoriales o imágenes de alta resolución, pero no es recomendable para pixel art.
  • La propiedad slice permite renderizar solo una porción específica de la imagen.
  • La lógica de renderizado y aplicación de máscaras, tintes, flip y tileo es gestionada por el sistema que procesa los componentes SpriteRenderer. El componente únicamente define las propiedades visuales.