CanvasLayer
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.
属性
Node | custom_viewport |
bool | follow_viewport_enabled |
float | follow_viewport_scale |
int | layer |
Vector2 | offset |
float | rotation |
Vector2 | scale |
Transform2D | transform |
bool | visible |
方法
RID | get_canvas ( ) const1 |
Transform2D | get_final_transform ( ) const1 |
void | hide ( ) |
void | show ( ) |
信号
visibility_changed ( )
Emitted when visibility of the layer is changed. See visible
.
属性说明
Node
custom_viewport
The custom Viewport
node assigned to the CanvasLayer. If null
, uses the default viewport instead.
bool
follow_viewport_enabled = false
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
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
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
The layer's rotation in radians.
Vector2
scale = Vector2(1, 1)
The layer's scale.
Transform2D
transform = Transform2D(1, 0, 0, 1, 0, 0)
void
set_transform ( value:Transform2D
)Transform2D
get_transform ( )
The layer's transform.
bool
visible = true
If false
, any CanvasItem
under this CanvasLayer will be hidden.
Unlike CanvasItem.visible
, visibility of a CanvasLayer isn't propagated to underlying layers.
方法说明
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
.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。