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)
voidset_transform ( value:Transform2D)Transform2Dget_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.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。