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 [code]0[/code], so a [CanvasLayer] with index [code]-1[/code] will be drawn below, and a [CanvasLayer] with index [code]1[/code] will be drawn above. This order will hold regardless of the [member 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 [code]1[/code] and higher) or backgrounds (on layers [code]-1[/code] and lower). [b]Note:[/b] Embedded [Window]s are placed on layer [code]1024[/code]. [CanvasItem]s on layers [code]1025[/code] and higher appear in front of embedded windows. [b]Note:[/b] Each [CanvasLayer] is drawn on one specific [Viewport] and cannot be shared between multiple [Viewport]s, see [member 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. $DOCS_URL/tutorials/2d/2d_transforms.html $DOCS_URL/tutorials/2d/canvas_layers.html https://godotengine.org/asset-library/asset/2712 Returns the RID of the canvas used by this layer. Returns the transform from the [CanvasLayer]s coordinate system to the [Viewport]s coordinate system. Hides any [CanvasItem] under this [CanvasLayer]. This is equivalent to setting [member visible] to [code]false[/code]. Shows any [CanvasItem] under this [CanvasLayer]. This is equivalent to setting [member visible] to [code]true[/code]. The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/code], uses the default viewport instead. 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 [member follow_viewport_scale] it can be used for a pseudo 3D effect. Scales the layer when using [member follow_viewport_enabled]. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales. Layer index for draw order. Lower values are drawn behind higher values. [b]Note:[/b] 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. The layer's base offset. The layer's rotation in radians. The layer's scale. The layer's transform. If [code]false[/code], any [CanvasItem] under this [CanvasLayer] will be hidden. Unlike [member CanvasItem.visible], visibility of a [CanvasLayer] isn't propagated to underlying layers. Emitted when visibility of the layer is changed. See [member visible].