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

Hérite de : Node2D < CanvasItem < Node < Object

Fusionne plusieurs nœuds 2D en une seule opération de dessin.

Description

Child CanvasItem nodes of a CanvasGroup are drawn as a single object. It allows to e.g. draw overlapping translucent 2D nodes without causing the overlapping sections to be more opaque than intended (set the CanvasItem.self_modulate property on the CanvasGroup to achieve this effect).

Note: The CanvasGroup uses a custom shader to read from the backbuffer to draw its children. Assigning a Material to the CanvasGroup overrides the built-in shader. To duplicate the behavior of the built-in shader in a custom Shader, use the following:

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;
}

Note: Since CanvasGroup and CanvasItem.clip_children both utilize the backbuffer, children of a CanvasGroup who have their CanvasItem.clip_children set to anything other than CanvasItem.CLIP_CHILDREN_DISABLED will not function correctly.

Propriétés

float

clear_margin

10.0

float

fit_margin

10.0

bool

use_mipmaps

false


Descriptions des propriétés

float clear_margin = 10.0 🔗

  • void set_clear_margin(value: float)

  • float get_clear_margin()

Définit la taille de la marge utilisée pour élargir le rectangle d’effacement de ce CanvasGroup. Cela étend l'aire du tampon arrière qui sera utilisée par le CanvasGroup. Une marge plus basse réduira l'aire du tampon arrière utilisée qui peut améliorer la performance, cependant si use_mipmaps est activé, une marge basse causera des erreurs de mipmap aux extrémités du CanvasGroup. De ce fait, la valeur doit rester aussi basse que possible, mais peut être rehaussée si des artefacts sont visibles aux extrémités du groupe.


float fit_margin = 10.0 🔗

  • void set_fit_margin(value: float)

  • float get_fit_margin()

Définit la taille d'une marge utilisée pour élargir le rectangle dessinable de ce CanvasGroup. La taille du CanvasGroup est déterminée en faisant correspondre un rectangle autour de ses enfants puis en élargissant ce rectangle par fit_margin. Cela augmente à la fois la taille du backbuffer utilisée et la zone couverte par le CanvasGroup, ce qui peut réduire les performances. Cela devrait être maintenu aussi petit que possible et ne devrait être élargi que si une taille accrue est nécessaire (p. ex. pour des effets de shaders personnalisés).


bool use_mipmaps = false 🔗

  • void set_use_mipmaps(value: bool)

  • bool is_using_mipmaps()

Si true, calcule les mipmaps pour le backbuffer avant de dessiner le CanvasGroup afin que les mipmaps puissent être utilisées dans un ShaderMaterial personnalisé attaché au CanvasGroup. Générer des mipmaps a un coût sur les performances, cela ne devrait donc pas être activé sauf si nécessaire.