2017-09-12 20:42:36 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
2021-04-26 11:14:51 +00:00
<class name= "VisibilityEnabler" inherits= "VisibilityNotifier" version= "3.4" >
2017-09-12 20:42:36 +00:00
<brief_description >
2020-04-17 20:04:19 +00:00
Enables certain nodes only when approximately visible.
2017-09-12 20:42:36 +00:00
</brief_description>
<description >
The VisibilityEnabler will disable [RigidBody] and [AnimationPlayer] nodes when they are not visible. It will only affect other nodes within the same scene as the VisibilityEnabler itself.
2020-07-17 22:29:03 +00:00
If you just want to receive notifications, use [VisibilityNotifier] instead.
2021-12-11 18:50:01 +00:00
[b]Note:[/b] VisibilityEnabler uses an approximate heuristic for performance reasons. It doesn't take walls and other occlusion into account (unless you are using [Portal]s). 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 [method Vector3.dot].
2020-04-17 20:04:19 +00:00
[b]Note:[/b] VisibilityEnabler will not affect nodes added after scene initialization.
2017-09-12 20:42:36 +00:00
</description>
<tutorials >
</tutorials>
<methods >
2019-06-27 14:10:09 +00:00
<method name= "is_enabler_enabled" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "bool" />
<argument index= "0" name= "enabler" type= "int" enum= "VisibilityEnabler.Enabler" />
2019-06-27 14:10:09 +00:00
<description >
2020-01-12 13:30:21 +00:00
Returns whether the enabler identified by given [enum Enabler] constant is active.
2019-06-27 14:10:09 +00:00
</description>
</method>
<method name= "set_enabler" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
<argument index= "0" name= "enabler" type= "int" enum= "VisibilityEnabler.Enabler" />
<argument index= "1" name= "enabled" type= "bool" />
2019-06-27 14:10:09 +00:00
<description >
2020-01-08 21:51:16 +00:00
Sets active state of the enabler identified by given [enum Enabler] constant.
2019-06-27 14:10:09 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
</methods>
<members >
2019-06-29 10:38:01 +00:00
<member name= "freeze_bodies" type= "bool" setter= "set_enabler" getter= "is_enabler_enabled" default= "true" >
2018-12-20 12:46:54 +00:00
If [code]true[/code], [RigidBody] nodes will be paused.
2017-09-12 20:42:36 +00:00
</member>
2019-06-29 10:38:01 +00:00
<member name= "pause_animations" type= "bool" setter= "set_enabler" getter= "is_enabler_enabled" default= "true" >
2018-12-20 12:46:54 +00:00
If [code]true[/code], [AnimationPlayer] nodes will be paused.
2017-09-12 20:42:36 +00:00
</member>
</members>
<constants >
2017-11-24 22:16:30 +00:00
<constant name= "ENABLER_PAUSE_ANIMATIONS" value= "0" enum= "Enabler" >
2017-09-12 20:42:36 +00:00
This enabler will pause [AnimationPlayer] nodes.
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "ENABLER_FREEZE_BODIES" value= "1" enum= "Enabler" >
2017-10-22 10:56:11 +00:00
This enabler will freeze [RigidBody] nodes.
</constant>
2017-11-24 22:16:30 +00:00
<constant name= "ENABLER_MAX" value= "2" enum= "Enabler" >
2019-06-27 09:10:53 +00:00
Represents the size of the [enum Enabler] enum.
2017-09-12 20:42:36 +00:00
</constant>
</constants>
</class>