Inherits: CullInstance < Spatial < Node < Object

Inherited By: VisibilityEnabler

Detects approximately when the node is visible on screen.


The VisibilityNotifier detects when it is visible on the screen. It also notifies when its bounding rectangle enters or exits the screen or a Camera's view.

If you want nodes to be disabled automatically when they exit the screen, use VisibilityEnabler instead.

Note: VisibilityNotifier uses an approximate heuristic for performance reasons. It doesn't take walls and other occlusion into account (unless you are using Portals). The heuristic is an implementation detail and may change in future versions. If you need precise visibility checking, use another method such as adding an Area node as a child of a Camera node and/or




AABB( -1, -1, -1, 2, 2, 2 )






is_on_screen ( ) const


camera_entered ( Camera camera )

Emitted when the VisibilityNotifier enters a Camera's view.

camera_exited ( Camera camera )

Emitted when the VisibilityNotifier exits a Camera's view.

screen_entered ( )

Emitted when the VisibilityNotifier enters the screen.

screen_exited ( )

Emitted when the VisibilityNotifier exits the screen.

Property Descriptions

AABB aabb = AABB( -1, -1, -1, 2, 2, 2 )

  • void set_aabb ( AABB value )

  • AABB get_aabb ( )

The VisibilityNotifier's bounding box.

float max_distance = 0.0

  • void set_max_distance ( float value )

  • float get_max_distance ( )

In addition to checking whether a node is on screen or within a Camera's view, VisibilityNotifier can also optionally check whether a node is within a specified maximum distance when using a Camera with perspective projection. This is useful for throttling the performance requirements of nodes that are far away.

Note: This feature will be disabled if set to 0.0.

Method Descriptions

bool is_on_screen ( ) const

If true, the bounding box is on the screen.

Note: It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return false right after it is instantiated, even if it will be on screen in the draw pass.