CanvasLayer

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

Наследуется от: ParallaxBackground

Узел, используемый для независимой визуализации объектов в 2D-сцене.

Описание

Узлы, производные от CanvasItem, которые являются прямыми или косвенными потомками CanvasLayer, будут отрисованы в этом слое. Слой — это числовой индекс, который определяет порядок отрисовки. 2D-сцена по умолчанию визуализируется с индексом 0, поэтому CanvasLayer с индексом -1 будет отрисован ниже, а CanvasLayer с индексом 1 будет отрисован выше. Этот порядок будет сохраняться независимо от CanvasItem.z_index узлов в каждом слое.

CanvasLayer могут быть скрыты, и они также могут опционально следовать за областью просмотра. Это делает их полезными для HUD, таких как наложения полос здоровья (на слоях 1 и выше) или фонов (на слоях -1 и ниже).

Примечание: Встроенные Window размещаются на слое 1024. CanvasItem на слоях 1025 и выше отображаются поверх встроенных окон.

Примечание: Каждый CanvasLayer рисуется на одном определенном Viewport и не может совместно использоваться несколькими Viewport, см. custom_viewport. При использовании нескольких Viewport, например, в игре с разделенным экраном, вам необходимо создать отдельный CanvasLayer для каждого Viewport, на котором вы хотите его нарисовать.

Обучающие материалы

Свойства

Node

custom_viewport

bool

follow_viewport_enabled

false

float

follow_viewport_scale

1.0

int

layer

1

Vector2

offset

Vector2(0, 0)

float

rotation

0.0

Vector2

scale

Vector2(1, 1)

Transform2D

transform

Transform2D(1, 0, 0, 1, 0, 0)

bool

visible

true

Методы

RID

get_canvas() const

Transform2D

get_final_transform() const

void

hide()

void

show()


Сигналы

visibility_changed() 🔗

Выдается при изменении видимости слоя. См. visible.


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

Node custom_viewport 🔗

  • void set_custom_viewport(value: Node)

  • Node get_custom_viewport()

Пользовательский узел Viewport, назначенный CanvasLayer. Если null, вместо этого используется viewport по умолчанию.


bool follow_viewport_enabled = false 🔗

  • void set_follow_viewport(value: bool)

  • bool is_following_viewport()

Если включено, CanvasLayer сохраняет свое положение в мировом пространстве. Если отключено, CanvasLayer остается в фиксированном положении на экране.

Вместе с follow_viewport_scale это можно использовать для псевдо-3D-эффекта.


float follow_viewport_scale = 1.0 🔗

  • void set_follow_viewport_scale(value: float)

  • float get_follow_viewport_scale()

Масштабирует слой при использовании follow_viewport_enabled. Слои, перемещающиеся на передний план, должны иметь увеличивающиеся масштабы, а слои, перемещающиеся на задний план, должны иметь уменьшающиеся масштабы.


int layer = 1 🔗

  • void set_layer(value: int)

  • int get_layer()

Индекс слоя для порядка отрисовки. Меньшие значения рисуются позади больших значений.

Примечание: Если несколько CanvasLayers имеют одинаковый индекс слоя, то дочерние элементы CanvasItem одного CanvasLayer рисуются позади дочерних элементов CanvasItem другого CanvasLayer. Какой CanvasLayer рисуется впереди, не определено.

Примечание: Индекс слоя должен быть между RenderingServer.CANVAS_LAYER_MIN и RenderingServer.CANVAS_LAYER_MAX (включительно). Любое другое значение будет переноситься.


Vector2 offset = Vector2(0, 0) 🔗

Смещение базы слоя.


float rotation = 0.0 🔗

  • void set_rotation(value: float)

  • float get_rotation()

Вращение слоя в радианах.


Vector2 scale = Vector2(1, 1) 🔗

Масштаб слоя.


Transform2D transform = Transform2D(1, 0, 0, 1, 0, 0) 🔗

Трансформация слоя.


bool visible = true 🔗

  • void set_visible(value: bool)

  • bool is_visible()

Если false, любой CanvasItem под этим CanvasLayer будет скрыт.

В отличие от CanvasItem.visible, видимость CanvasLayer не распространяется на нижележащие слои.


Описания метода

RID get_canvas() const 🔗

Возвращает RID холста, используемого этим слоем.


Transform2D get_final_transform() const 🔗

Возвращает преобразование из системы координат CanvasLayer-ов в систему координат Viewport-ов.


void hide() 🔗

Скрывает любой CanvasItem под этим CanvasLayer. Это эквивалентно установке visible на false.


void show() 🔗

Показывает любой CanvasItem под этим CanvasLayer. Это эквивалентно установке visible на true.