Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

CanvasLayer

Inherits: Node < Object

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.

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

Tutorials

Properties

Node

custom_viewport

bool

follow_viewport_enabled

false

float

follow_viewport_scale

1.0

int

layer

1

Vector2

offset

Vector2(0, 0)

float

rotation

0.0

Vector2

scale

Vector2(1, 1)

Transform2D

transform

Transform2D(1, 0, 0, 1, 0, 0)

bool

visible

true

Methods

RID

get_canvas ( ) const

Transform2D

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

  • void set_custom_viewport ( Node value )

  • 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 ( bool value )