CanvasGroup

Наследует: Node2D < CanvasItem < Node < Object

Объединяет несколько 2D-узлов в одну операцию рисования.

Описание

Дочерние узлы CanvasItem CanvasGroup рисуются как один объект. Это позволяет, например, рисовать перекрывающиеся полупрозрачные 2D-узлы без смешивания (задайте свойство CanvasItem.self_modulate CanvasGroup, чтобы добиться этого эффекта).

Примечание: CanvasGroup использует пользовательский шейдер для чтения из буфера заднего плана для рисования своих дочерних элементов. Назначение Material CanvasGroup переопределяет встроенный шейдер. Чтобы дублировать поведение встроенного шейдера в пользовательском Shader, используйте следующее:

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

Примечание: Поскольку CanvasGroup и CanvasItem.clip_children используют фоновый буфер, дочерние элементы CanvasGroup, у которых CanvasItem.clip_children установлен на что-либо, кроме CanvasItem.CLIP_CHILDREN_DISABLED, не будут работать правильно.

Свойства

float

clear_margin

10.0

float

fit_margin

10.0

bool

use_mipmaps

false


Описания свойств

float clear_margin = 10.0 🔗

  • void set_clear_margin(value: float)

  • float get_clear_margin()

Устанавливает размер поля, используемого для расширения очищаемого прямоугольника этого CanvasGroup. Это расширяет область заднего буфера, которая будет использоваться CanvasGroup. Меньшее поле уменьшит область используемого заднего буфера, что может повысить производительность, однако, если включен use_mipmaps, небольшое поле может привести к ошибкам mipmap на краю CanvasGroup. Соответственно, его следует оставить как можно меньше, но следует увеличить, если по краям группы холстов появляются артефакты.


float fit_margin = 10.0 🔗

  • void set_fit_margin(value: float)

  • float get_fit_margin()

Устанавливает размер поля, используемого для расширения отрисовываемого прямоугольника этого CanvasGroup. Размер CanvasGroup определяется путем подгонки прямоугольника вокруг его дочерних элементов, а затем расширения этого прямоугольника на fit_margin. Это увеличивает как используемую область заднего буфера, так и область, охватываемую CanvasGroup, что может снизить производительность. Это должно быть как можно меньше и должно расширяться только тогда, когда требуется увеличенный размер (например, для пользовательских эффектов шейдера).


bool use_mipmaps = false 🔗

  • void set_use_mipmaps(value: bool)

  • bool is_using_mipmaps()

Если true, вычисляет mip-карты для заднего буфера перед рисованием CanvasGroup, чтобы mip-карты можно было использовать в пользовательском ShaderMaterial, прикрепленном к CanvasGroup. Генерация mip-карт снижает производительность, поэтому ее не следует включать, если это не требуется.