123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517 |
- :github_url: hide
- .. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
- .. DO NOT EDIT THIS FILE, but the Area.xml source instead.
- .. The source is found in doc/classes or modules/<name>/doc_classes.
- .. _class_Area:
- Area
- ====
- **Inherits:** :ref:`CollisionObject<class_CollisionObject>` **<** :ref:`Spatial<class_Spatial>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
- 3D area for detection and physics and audio influence.
- Description
- -----------
- 3D area that detects :ref:`CollisionObject<class_CollisionObject>` nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping) and route audio to custom audio buses.
- Tutorials
- ---------
- - `3D Platformer Demo <https://godotengine.org/asset-library/asset/125>`__
- - `GUI in 3D Demo <https://godotengine.org/asset-library/asset/127>`__
- Properties
- ----------
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`angular_damp<class_Area_property_angular_damp>` | ``0.1`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`String<class_String>` | :ref:`audio_bus_name<class_Area_property_audio_bus_name>` | ``"Master"`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`bool<class_bool>` | :ref:`audio_bus_override<class_Area_property_audio_bus_override>` | ``false`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`gravity<class_Area_property_gravity>` | ``9.8`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`gravity_distance_scale<class_Area_property_gravity_distance_scale>` | ``0.0`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`bool<class_bool>` | :ref:`gravity_point<class_Area_property_gravity_point>` | ``false`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`Vector3<class_Vector3>` | :ref:`gravity_vec<class_Area_property_gravity_vec>` | ``Vector3( 0, -1, 0 )`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`linear_damp<class_Area_property_linear_damp>` | ``0.1`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`bool<class_bool>` | :ref:`monitorable<class_Area_property_monitorable>` | ``true`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`bool<class_bool>` | :ref:`monitoring<class_Area_property_monitoring>` | ``true`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`priority<class_Area_property_priority>` | ``0.0`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`reverb_bus_amount<class_Area_property_reverb_bus_amount>` | ``0.0`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`bool<class_bool>` | :ref:`reverb_bus_enable<class_Area_property_reverb_bus_enable>` | ``false`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`String<class_String>` | :ref:`reverb_bus_name<class_Area_property_reverb_bus_name>` | ``"Master"`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`float<class_float>` | :ref:`reverb_bus_uniformity<class_Area_property_reverb_bus_uniformity>` | ``0.0`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- | :ref:`SpaceOverride<enum_Area_SpaceOverride>` | :ref:`space_override<class_Area_property_space_override>` | ``0`` |
- +-----------------------------------------------+---------------------------------------------------------------------------+-------------------------+
- Methods
- -------
- +---------------------------+--------------------------------------------------------------------------------------------------------+
- | :ref:`Array<class_Array>` | :ref:`get_overlapping_areas<class_Area_method_get_overlapping_areas>` **(** **)** |const| |
- +---------------------------+--------------------------------------------------------------------------------------------------------+
- | :ref:`Array<class_Array>` | :ref:`get_overlapping_bodies<class_Area_method_get_overlapping_bodies>` **(** **)** |const| |
- +---------------------------+--------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`overlaps_area<class_Area_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
- +---------------------------+--------------------------------------------------------------------------------------------------------+
- | :ref:`bool<class_bool>` | :ref:`overlaps_body<class_Area_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
- +---------------------------+--------------------------------------------------------------------------------------------------------+
- Signals
- -------
- .. _class_Area_signal_area_entered:
- - **area_entered** **(** :ref:`Area<class_Area>` area **)**
- Emitted when another Area enters this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
- ``area`` the other Area.
- ----
- .. _class_Area_signal_area_exited:
- - **area_exited** **(** :ref:`Area<class_Area>` area **)**
- Emitted when another Area exits this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
- ``area`` the other Area.
- ----
- .. _class_Area_signal_area_shape_entered:
- - **area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area<class_Area>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
- Emitted when one of another Area's :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
- ``area_rid`` the :ref:`RID<class_RID>` of the other Area's :ref:`CollisionObject<class_CollisionObject>` used by the :ref:`PhysicsServer<class_PhysicsServer>`.
- ``area`` the other Area.
- ``area_shape_index`` the index of the :ref:`Shape<class_Shape>` of the other Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``area.shape_owner_get_owner(area_shape_index)``.
- ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
- ----
- .. _class_Area_signal_area_shape_exited:
- - **area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area<class_Area>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
- Emitted when one of another Area's :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``.
- ``area_rid`` the :ref:`RID<class_RID>` of the other Area's :ref:`CollisionObject<class_CollisionObject>` used by the :ref:`PhysicsServer<class_PhysicsServer>`.
- ``area`` the other Area.
- ``area_shape_index`` the index of the :ref:`Shape<class_Shape>` of the other Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``area.shape_owner_get_owner(area_shape_index)``.
- ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
- ----
- .. _class_Area_signal_body_entered:
- - **body_entered** **(** :ref:`Node<class_Node>` body **)**
- Emitted when a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>` enters this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
- ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`.
- ----
- .. _class_Area_signal_body_exited:
- - **body_exited** **(** :ref:`Node<class_Node>` body **)**
- Emitted when a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>` exits this Area. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
- ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the other :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`.
- ----
- .. _class_Area_signal_body_shape_entered:
- - **body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node<class_Node>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
- Emitted when one of a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`'s :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
- ``body_rid`` the :ref:`RID<class_RID>` of the :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`MeshLibrary<class_MeshLibrary>`'s :ref:`CollisionObject<class_CollisionObject>` used by the :ref:`PhysicsServer<class_PhysicsServer>`.
- ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`.
- ``body_shape_index`` the index of the :ref:`Shape<class_Shape>` of the :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>` used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``body.shape_owner_get_owner(body_shape_index)``.
- ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
- ----
- .. _class_Area_signal_body_shape_exited:
- - **body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node<class_Node>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
- Emitted when one of a :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`'s :ref:`Shape<class_Shape>`\ s enters one of this Area's :ref:`Shape<class_Shape>`\ s. Requires :ref:`monitoring<class_Area_property_monitoring>` to be set to ``true``. :ref:`GridMap<class_GridMap>`\ s are detected if the :ref:`MeshLibrary<class_MeshLibrary>` has Collision :ref:`Shape<class_Shape>`\ s.
- ``body_rid`` the :ref:`RID<class_RID>` of the :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`MeshLibrary<class_MeshLibrary>`'s :ref:`CollisionObject<class_CollisionObject>` used by the :ref:`PhysicsServer<class_PhysicsServer>`.
- ``body`` the :ref:`Node<class_Node>`, if it exists in the tree, of the :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>`.
- ``body_shape_index`` the index of the :ref:`Shape<class_Shape>` of the :ref:`PhysicsBody<class_PhysicsBody>` or :ref:`GridMap<class_GridMap>` used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``body.shape_owner_get_owner(body_shape_index)``.
- ``local_shape_index`` the index of the :ref:`Shape<class_Shape>` of this Area used by the :ref:`PhysicsServer<class_PhysicsServer>`. Get the :ref:`CollisionShape<class_CollisionShape>` node with ``self.shape_owner_get_owner(local_shape_index)``.
- Enumerations
- ------------
- .. _enum_Area_SpaceOverride:
- .. _class_Area_constant_SPACE_OVERRIDE_DISABLED:
- .. _class_Area_constant_SPACE_OVERRIDE_COMBINE:
- .. _class_Area_constant_SPACE_OVERRIDE_COMBINE_REPLACE:
- .. _class_Area_constant_SPACE_OVERRIDE_REPLACE:
- .. _class_Area_constant_SPACE_OVERRIDE_REPLACE_COMBINE:
- enum **SpaceOverride**:
- - **SPACE_OVERRIDE_DISABLED** = **0** --- This area does not affect gravity/damping.
- - **SPACE_OVERRIDE_COMBINE** = **1** --- This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area_property_priority>` order).
- - **SPACE_OVERRIDE_COMBINE_REPLACE** = **2** --- This area adds its gravity/damping values to whatever has been calculated so far (in :ref:`priority<class_Area_property_priority>` order), ignoring any lower priority areas.
- - **SPACE_OVERRIDE_REPLACE** = **3** --- This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
- - **SPACE_OVERRIDE_REPLACE_COMBINE** = **4** --- This area replaces any gravity/damping calculated so far (in :ref:`priority<class_Area_property_priority>` order), but keeps calculating the rest of the areas.
- Property Descriptions
- ---------------------
- .. _class_Area_property_angular_damp:
- - :ref:`float<class_float>` **angular_damp**
- +-----------+-------------------------+
- | *Default* | ``0.1`` |
- +-----------+-------------------------+
- | *Setter* | set_angular_damp(value) |
- +-----------+-------------------------+
- | *Getter* | get_angular_damp() |
- +-----------+-------------------------+
- The rate at which objects stop spinning in this area. Represents the angular velocity lost per second.
- See :ref:`ProjectSettings.physics/3d/default_angular_damp<class_ProjectSettings_property_physics/3d/default_angular_damp>` for more details about damping.
- ----
- .. _class_Area_property_audio_bus_name:
- - :ref:`String<class_String>` **audio_bus_name**
- +-----------+----------------------+
- | *Default* | ``"Master"`` |
- +-----------+----------------------+
- | *Setter* | set_audio_bus(value) |
- +-----------+----------------------+
- | *Getter* | get_audio_bus() |
- +-----------+----------------------+
- The name of the area's audio bus.
- ----
- .. _class_Area_property_audio_bus_override:
- - :ref:`bool<class_bool>` **audio_bus_override**
- +-----------+-------------------------------+
- | *Default* | ``false`` |
- +-----------+-------------------------------+
- | *Setter* | set_audio_bus_override(value) |
- +-----------+-------------------------------+
- | *Getter* | is_overriding_audio_bus() |
- +-----------+-------------------------------+
- If ``true``, the area's audio bus overrides the default audio bus.
- ----
- .. _class_Area_property_gravity:
- - :ref:`float<class_float>` **gravity**
- +-----------+--------------------+
- | *Default* | ``9.8`` |
- +-----------+--------------------+
- | *Setter* | set_gravity(value) |
- +-----------+--------------------+
- | *Getter* | get_gravity() |
- +-----------+--------------------+
- The area's gravity intensity (in meters per second squared). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction.
- ----
- .. _class_Area_property_gravity_distance_scale:
- - :ref:`float<class_float>` **gravity_distance_scale**
- +-----------+-----------------------------------+
- | *Default* | ``0.0`` |
- +-----------+-----------------------------------+
- | *Setter* | set_gravity_distance_scale(value) |
- +-----------+-----------------------------------+
- | *Getter* | get_gravity_distance_scale() |
- +-----------+-----------------------------------+
- The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
- ----
- .. _class_Area_property_gravity_point:
- - :ref:`bool<class_bool>` **gravity_point**
- +-----------+-----------------------------+
- | *Default* | ``false`` |
- +-----------+-----------------------------+
- | *Setter* | set_gravity_is_point(value) |
- +-----------+-----------------------------+
- | *Getter* | is_gravity_a_point() |
- +-----------+-----------------------------+
- If ``true``, gravity is calculated from a point (set via :ref:`gravity_vec<class_Area_property_gravity_vec>`). See also :ref:`space_override<class_Area_property_space_override>`.
- ----
- .. _class_Area_property_gravity_vec:
- - :ref:`Vector3<class_Vector3>` **gravity_vec**
- +-----------+---------------------------+
- | *Default* | ``Vector3( 0, -1, 0 )`` |
- +-----------+---------------------------+
- | *Setter* | set_gravity_vector(value) |
- +-----------+---------------------------+
- | *Getter* | get_gravity_vector() |
- +-----------+---------------------------+
- The area's gravity vector (not normalized). If gravity is a point (see :ref:`gravity_point<class_Area_property_gravity_point>`), this will be the point of attraction.
- ----
- .. _class_Area_property_linear_damp:
- - :ref:`float<class_float>` **linear_damp**
- +-----------+------------------------+
- | *Default* | ``0.1`` |
- +-----------+------------------------+
- | *Setter* | set_linear_damp(value) |
- +-----------+------------------------+
- | *Getter* | get_linear_damp() |
- +-----------+------------------------+
- The rate at which objects stop moving in this area. Represents the linear velocity lost per second.
- See :ref:`ProjectSettings.physics/3d/default_linear_damp<class_ProjectSettings_property_physics/3d/default_linear_damp>` for more details about damping.
- ----
- .. _class_Area_property_monitorable:
- - :ref:`bool<class_bool>` **monitorable**
- +-----------+------------------------+
- | *Default* | ``true`` |
- +-----------+------------------------+
- | *Setter* | set_monitorable(value) |
- +-----------+------------------------+
- | *Getter* | is_monitorable() |
- +-----------+------------------------+
- If ``true``, other monitoring areas can detect this area.
- ----
- .. _class_Area_property_monitoring:
- - :ref:`bool<class_bool>` **monitoring**
- +-----------+-----------------------+
- | *Default* | ``true`` |
- +-----------+-----------------------+
- | *Setter* | set_monitoring(value) |
- +-----------+-----------------------+
- | *Getter* | is_monitoring() |
- +-----------+-----------------------+
- If ``true``, the area detects bodies or areas entering and exiting it.
- ----
- .. _class_Area_property_priority:
- - :ref:`float<class_float>` **priority**
- +-----------+---------------------+
- | *Default* | ``0.0`` |
- +-----------+---------------------+
- | *Setter* | set_priority(value) |
- +-----------+---------------------+
- | *Getter* | get_priority() |
- +-----------+---------------------+
- The area's priority. Higher priority areas are processed first.
- ----
- .. _class_Area_property_reverb_bus_amount:
- - :ref:`float<class_float>` **reverb_bus_amount**
- +-----------+--------------------------+
- | *Default* | ``0.0`` |
- +-----------+--------------------------+
- | *Setter* | set_reverb_amount(value) |
- +-----------+--------------------------+
- | *Getter* | get_reverb_amount() |
- +-----------+--------------------------+
- The degree to which this area applies reverb to its associated audio. Ranges from ``0`` to ``1`` with ``0.1`` precision.
- ----
- .. _class_Area_property_reverb_bus_enable:
- - :ref:`bool<class_bool>` **reverb_bus_enable**
- +-----------+---------------------------+
- | *Default* | ``false`` |
- +-----------+---------------------------+
- | *Setter* | set_use_reverb_bus(value) |
- +-----------+---------------------------+
- | *Getter* | is_using_reverb_bus() |
- +-----------+---------------------------+
- If ``true``, the area applies reverb to its associated audio.
- ----
- .. _class_Area_property_reverb_bus_name:
- - :ref:`String<class_String>` **reverb_bus_name**
- +-----------+-----------------------+
- | *Default* | ``"Master"`` |
- +-----------+-----------------------+
- | *Setter* | set_reverb_bus(value) |
- +-----------+-----------------------+
- | *Getter* | get_reverb_bus() |
- +-----------+-----------------------+
- The reverb bus name to use for this area's associated audio.
- ----
- .. _class_Area_property_reverb_bus_uniformity:
- - :ref:`float<class_float>` **reverb_bus_uniformity**
- +-----------+------------------------------+
- | *Default* | ``0.0`` |
- +-----------+------------------------------+
- | *Setter* | set_reverb_uniformity(value) |
- +-----------+------------------------------+
- | *Getter* | get_reverb_uniformity() |
- +-----------+------------------------------+
- The degree to which this area's reverb is a uniform effect. Ranges from ``0`` to ``1`` with ``0.1`` precision.
- ----
- .. _class_Area_property_space_override:
- - :ref:`SpaceOverride<enum_Area_SpaceOverride>` **space_override**
- +-----------+--------------------------------+
- | *Default* | ``0`` |
- +-----------+--------------------------------+
- | *Setter* | set_space_override_mode(value) |
- +-----------+--------------------------------+
- | *Getter* | get_space_override_mode() |
- +-----------+--------------------------------+
- Override mode for gravity and damping calculations within this area. See :ref:`SpaceOverride<enum_Area_SpaceOverride>` for possible values.
- Method Descriptions
- -------------------
- .. _class_Area_method_get_overlapping_areas:
- - :ref:`Array<class_Array>` **get_overlapping_areas** **(** **)** |const|
- Returns a list of intersecting ``Area``\ s. The overlapping area's :ref:`CollisionObject.collision_layer<class_CollisionObject_property_collision_layer>` must be part of this area's :ref:`CollisionObject.collision_mask<class_CollisionObject_property_collision_mask>` in order to be detected.
- For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
- ----
- .. _class_Area_method_get_overlapping_bodies:
- - :ref:`Array<class_Array>` **get_overlapping_bodies** **(** **)** |const|
- Returns a list of intersecting :ref:`PhysicsBody<class_PhysicsBody>`\ s. The overlapping body's :ref:`CollisionObject.collision_layer<class_CollisionObject_property_collision_layer>` must be part of this area's :ref:`CollisionObject.collision_mask<class_CollisionObject_property_collision_mask>` in order to be detected.
- For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
- ----
- .. _class_Area_method_overlaps_area:
- - :ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
- If ``true``, the given area overlaps the Area.
- **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
- ----
- .. _class_Area_method_overlaps_body:
- - :ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
- If ``true``, the given physics body overlaps the Area.
- **Note:** The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
- The ``body`` argument can either be a :ref:`PhysicsBody<class_PhysicsBody>` or a :ref:`GridMap<class_GridMap>` instance (while GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body).
- .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
- .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
- .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
|