Up to date
This page is up to date for Godot 4.0
. If you still find outdated information, please open an issue.
CanvasLayer
Inherited By: ParallaxBackground
A node used for independent rendering of objects within a 2D scene.
Description
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.
CanvasLayers 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 Windows are placed on layer 1024
. CanvasItems on layers 1025
and higher appear in front of embedded windows.
Tutorials
Properties
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
Methods
get_canvas ( ) const | |
get_final_transform ( ) const | |
void | hide ( ) |
void | show ( ) |
Signals
visibility_changed ( )
Emitted when visibility of the layer is changed. See visible.
Property Descriptions
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.
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 ( Transform2D value )
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.
Method Descriptions
RID get_canvas ( ) const
Returns the RID of the canvas used by this layer.
Transform2D get_final_transform ( ) const
Returns the transform from the CanvasLayers coordinate system to the Viewports 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
.