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. не працюватиме належним чином.
Властивості
|
||
|
||
|
Описи властивостей
Встановлює розмір поля, яке використовується для розширення прямокутника очищення цієї CanvasGroup. Це розширить область заднього буфера, яка буде використовуватися CanvasGroup. Менший запас зменшить площу використовуваного резервного буфера, що може підвищити продуктивність, однак, якщо use_mipmaps увімкнено, малий запас може призвести до помилок mipmap на краю CanvasGroup. Відповідно, його слід залишити якомога меншим, але збільшити, якщо по краях групи полотен з’являються артефакти.
Встановлює розмір поля, яке використовується для розширення прямокутника, який можна намалювати, цієї CanvasGroup. Розмір CanvasGroup визначається підгонкою прямокутника навколо його дочірніх елементів, а потім розширенням прямокутника на fit_margin. Це збільшує як використовувану область зворотного буфера, так і область, охоплену CanvasGroup, що може знизити продуктивність. Він має бути якомога меншим і розширюватися лише тоді, коли потрібно збільшити розмір (наприклад, для спеціальних ефектів шейдерів).
Якщо true, перед малюванням CanvasGroup розраховує mipmaps для заднього буфера, щоб можна було використовувати mipmaps у спеціальному ShaderMaterial, прикріпленому до CanvasGroup. Створення MIP-карт має низьку продуктивність, тому її не слід вмикати, якщо це не потрібно.