CanvasLayer

继承: Node < Object

派生: ParallaxBackground

A node used for independent rendering of objects within a 2D scene.

描述

CanvasItem-derived nodes that are direct or indirect children of a CanvasLayer will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a CanvasLayer with index -1 will be drawn below, and a CanvasLayer with index 1 will be drawn above. This order will hold regardless of the CanvasItem.z_index of the nodes within each layer.

CanvasLayer s can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers 1 and higher) or backgrounds (on layers -1 and lower).

Note: Embedded Window s are placed on layer 1024. CanvasItem s on layers 1025 and higher appear in front of embedded windows.

Note: Each CanvasLayer is drawn on one specific Viewport and cannot be shared between multiple Viewport s, see custom_viewport. When using multiple Viewport s, for example in a split-screen game, you need create an individual CanvasLayer for each Viewport you want it to be drawn on.

属性

方法

RIDget_canvas ( ) const1
Transform2Dget_final_transform ( ) const1
voidhide ( )
voidshow ( )

信号

visibility_changed ( )

Emitted when visibility of the layer is changed. See visible.


属性说明

Node custom_viewport

  • void set_custom_viewport ( value: Node )
  • Node get_custom_viewport ( )

The custom Viewport node assigned to the CanvasLayer. If null, uses the default viewport instead.


bool follow_viewport_enabled = false

  • void set_follow_viewport ( value: bool )
  • bool is_following_viewport ( )

If enabled, the CanvasLayer will use the viewport's transform, so it will move when camera moves instead of being anchored in a fixed position on the screen.

Together with follow_viewport_scale it can be used for a pseudo 3D effect.


float follow_viewport_scale = 1.0

  • void set_follow_viewport_scale ( value: float )
  • float get_follow_viewport_scale ( )

Scales the layer when using follow_viewport_enabled. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales.


int layer = 1

  • void set_layer ( value: int )
  • int get_layer ( )

Layer index for draw order. Lower values are drawn behind higher values.

Note: If multiple CanvasLayers have the same layer index, CanvasItem children of one CanvasLayer are drawn behind the CanvasItem children of the other CanvasLayer. Which CanvasLayer is drawn in front is non-deterministic.


Vector2 offset = Vector2(0, 0)

The layer's base offset.


float rotation = 0.0

  • void set_rotation ( value: float )
  • float get_rotation ( )

The layer's rotation in radians.


Vector2 scale = Vector2(1, 1)

The layer's scale.


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

The layer's transform.


bool visible = true

  • void set_visible ( value: bool )
  • bool is_visible ( )

If false, any CanvasItem under this CanvasLayer will be hidden.

Unlike CanvasItem.visible, visibility of a CanvasLayer isn't propagated to underlying layers.


方法说明

RID get_canvas ( ) const1

Returns the RID of the canvas used by this layer.


Transform2D get_final_transform ( ) const1

Returns the transform from the CanvasLayer s coordinate system to the Viewport s coordinate system.


void hide ( )

Hides any CanvasItem under this CanvasLayer. This is equivalent to setting visible to false.


void show ( )

Shows any CanvasItem under this CanvasLayer. This is equivalent to setting visible to true.

2

本方法通常需要用户覆盖才能生效。

1

本方法无副作用,不会修改该实例的任何成员变量。

3

本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。

4

本方法用于构造某个类型。

5

调用本方法无需实例,可直接使用类名进行调用。

6

本方法描述的是使用本类型作为左操作数的有效运算符。

7

这个值是由下列位标志构成位掩码的整数。

8

无返回值。