Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

CanvasGroup

Hereda: Node2D < CanvasItem < Node < Object

Combina varios nodos 2D en una única operación de dibujo.

Descripción

Los nodos hijos CanvasItem de un CanvasGroup se dibujan como un objeto único. Permite, por ejemplo, dibujar nodos 2D traslúcidos superpuestos sin que las secciones solapadas sean más opacas de lo previsto (establece la propiedad CanvasItem.self_modulate en el CanvasGroup para lograr este efecto).

Nota: El CanvasGroup utiliza un shader personalizado para leer desde el backbuffer y dibujar a sus hijos. Asignar un Material al CanvasGroup anula el shader integrado. Para duplicar el comportamiento del shader integrado en un Shader personalizado, utiliza lo siguiente:

shader_type canvas_item;
render_mode unshaded;

uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest;

void fragment() {
    vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0);

    if (c.a > 0.0001) {
        c.rgb /= c.a;
    }

    COLOR *= c;
}

Nota: Dado que tanto CanvasGroup como CanvasItem.clip_children utilizan el backbuffer, los hijos de un CanvasGroup que tengan su CanvasItem.clip_children establecido en cualquier valor distinto de CanvasItem.CLIP_CHILDREN_DISABLED no funcionarán correctamente.

Propiedades

float

clear_margin

10.0

float

fit_margin

10.0

bool

use_mipmaps

false


Descripciones de Propiedades

float clear_margin = 10.0 🔗

  • void set_clear_margin(value: float)

  • float get_clear_margin()

Establece el tamaño del margen utilizado para expandir el área de borrado de este CanvasGroup. Esto expande el área del búfer de fondo que utilizará el CanvasGroup. Un margen menor reducirá el área del búfer de fondo utilizada, lo que puede mejorar el rendimiento; sin embargo, si use_mipmaps está habilitado, un margen pequeño puede provocar errores de mipmap en el borde del CanvasGroup. Por lo tanto, debe dejarse lo más pequeño posible, pero debe aumentarse si aparecen artefactos en los bordes del grupo de lienzos.


float fit_margin = 10.0 🔗

  • void set_fit_margin(value: float)

  • float get_fit_margin()

Establece el tamaño de un margen utilizado para expandir el rectángulo dibujable de este CanvasGroup. El tamaño del CanvasGroup se determina ajustando un rectángulo alrededor de sus elementos secundarios y luego expandiendo ese rectángulo mediante fit_margin. Esto aumenta tanto el área del backbuffer utilizada como el área cubierta por el CanvasGroup, lo que puede reducir el rendimiento. Este margen debe mantenerse lo más pequeño posible y solo debe expandirse cuando se necesite un tamaño mayor (por ejemplo, para efectos de sombreado personalizados).


bool use_mipmaps = false 🔗

  • void set_use_mipmaps(value: bool)

  • bool is_using_mipmaps()

Si es true, calcula los mipmaps para el backbuffer antes de dibujar el CanvasGroup para que los mipmaps se puedan usar en un ShaderMaterial personalizado adjunto al CanvasGroup. La generación de mipmaps tiene un coste de rendimiento, por lo que no debe habilitarse a menos que sea necesario.