CanvasGroup

Успадковує: Node2D < CanvasItem < Node < Object

Об’єднує кілька 2D вузлів в одну операцію малювання.

Опис

Дочірні вузли CanvasItem CanvasGroup малюються як єдиний об’єкт. Це дозволяє, наприклад, малювати напівпрозорі двовимірні вузли, що перекриваються, без змішування (встановіть властивість 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_textrue, 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, перед малюванням CanvasGroup розраховує mipmaps для заднього буфера, щоб можна було використовувати mipmaps у спеціальному ShaderMaterial, прикріпленому до CanvasGroup. Створення MIP-карт має низьку продуктивність, тому її не слід вмикати, якщо це не потрібно.