<?xml version="1.0" encoding="UTF-8" ?> <class name="VisibilityEnabler" inherits="VisibilityNotifier" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd"> <brief_description> Enables certain nodes only when approximately visible. </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. If you just want to receive notifications, use [VisibilityNotifier] instead. [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]. [b]Note:[/b] VisibilityEnabler will not affect nodes added after scene initialization. </description> <tutorials> </tutorials> <methods> <method name="is_enabler_enabled" qualifiers="const"> <return type="bool" /> <argument index="0" name="enabler" type="int" enum="VisibilityEnabler.Enabler" /> <description> Returns whether the enabler identified by given [enum Enabler] constant is active. </description> </method> <method name="set_enabler"> <return type="void" /> <argument index="0" name="enabler" type="int" enum="VisibilityEnabler.Enabler" /> <argument index="1" name="enabled" type="bool" /> <description> Sets active state of the enabler identified by given [enum Enabler] constant. </description> </method> </methods> <members> <member name="freeze_bodies" type="bool" setter="set_enabler" getter="is_enabler_enabled" default="true"> If [code]true[/code], [RigidBody] nodes will be paused. </member> <member name="pause_animations" type="bool" setter="set_enabler" getter="is_enabler_enabled" default="true"> If [code]true[/code], [AnimationPlayer] nodes will be paused. </member> </members> <constants> <constant name="ENABLER_PAUSE_ANIMATIONS" value="0" enum="Enabler"> This enabler will pause [AnimationPlayer] nodes. </constant> <constant name="ENABLER_FREEZE_BODIES" value="1" enum="Enabler"> This enabler will freeze [RigidBody] nodes. </constant> <constant name="ENABLER_MAX" value="2" enum="Enabler"> Represents the size of the [enum Enabler] enum. </constant> </constants> </class>