VisibilityNotifier

Inherits: CullInstance < Spatial < Node < Object

Inherited By: VisibilityEnabler

大约在节点在屏幕上可见时进行检测。

描述

VisibilityNotifier 检测它在屏幕上是否可见。当它的边界矩形进入或退出屏幕或 Camera 的视图时,它也会发出通知。

如果你想让节点在退出屏幕时自动禁用,请使用 VisibilityEnabler 代替。

注意:VisibilityNotifier 由于性能原因使用了一个近似的启发式方法。它不会考虑墙和其他遮挡物(除非你使用了 Portal)。启发式这一实现细节,在未来的版本中可能会改变。如果你需要精确的可见性检查,请使用另一种方法,例如添加一个 Area 节点作为 Camera 节点的子节点和/或 Vector3.dot

属性

AABB

aabb

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

方法

bool

is_on_screen ( ) const

信号

  • camera_entered ( Camera camera )

当VisibilityNotifier进入Camera的视图时触发。


  • camera_exited ( Camera camera )

当VisibilityNotifier退出Camera的视图时触发。


  • screen_entered ( )

当VisibilityNotifier进入屏幕时触发。


  • screen_exited ( )

当VisibilityNotifier退出屏幕时触发。

属性说明

Default

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

Setter

set_aabb(value)

Getter

get_aabb()

VisibilityNotifier的边界框。

方法说明

  • bool is_on_screen ( ) const

如果true,则边界框在屏幕上。

注意:一旦添加到场景树中,需要一帧来计算节点的可见性,所以这个方法将在它被实例化后立即返回false,即使屏幕在绘制过程中。