CanvasGroup

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

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

Description

Les nœuds enfants CanvasItem d'un CanvasGroup sont dessinés comme un seul object. Cela permet par exemple de dessiner des nœuds 2D enchevêtrés sans mélange (activer la propriété CanvasItem.self_modulate de CanvasGroup pour aboutir à cet effet).

Remarque : Le CanvasGroup utilise un shader pour lire depuis le tampon arrière pour dessiner ses enfants. Affecter un Material au CanvasGroup remplacera le shader de base. Pour dupliquer le comportement du shader de base dans un Shader personnalisé, le code suivant peut être utilisé :

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

Remarque : Vu que CanvasGroup et CanvasItem.clip_children utilisent tous deux le tampon arrière, les enfants d'un CanvasGroup qui ont leur propriété CanvasItem.clip_children définie à toute valeur exceptée CanvasItem.CLIP_CHILDREN_DISABLED ne fonctionneront pas correctement.

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.