Files
godot-docs-l10n/classes/zh_CN/class_area3d.rst
Rémi Verschelde 9581bc9bb3 Sync class reference translations with upstream 4.x
Still only zh_CN for now.
zh_TW is near 100% complete, but it has hundreds of validation errors
which need to be fixed first.
2023-11-21 16:13:45 +01:00

792 lines
35 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/Area3D.xml.
.. _class_Area3D:
Area3D
======
**继承:** :ref:`CollisionObject3D<class_CollisionObject3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
3D 空间中的一个区域,能够检测到其他 :ref:`CollisionObject3D<class_CollisionObject3D>` 的进入或退出。
.. rst-class:: classref-introduction-group
描述
----
**Area3D** 是 3D 空间中的一个区域,由一个或多个 :ref:`CollisionShape3D<class_CollisionShape3D>`:ref:`CollisionPolygon3D<class_CollisionPolygon3D>` 子节点定义,能够检测到其他 :ref:`CollisionObject3D<class_CollisionObject3D>` 进入或退出该区域,同时也会记录哪些碰撞对象尚未退出(即哪些对象与其存在重叠)。
这个节点也可以在局部修改或覆盖物理参数(重力、阻尼),将音频引导至自定义音频总线。
\ **警告:**\ 在这个节点的 :ref:`CollisionShape3D<class_CollisionShape3D>` 子节点中使用 :ref:`ConcavePolygonShape3D<class_ConcavePolygonShape3D>`\ (创建方法是在选中 :ref:`MeshInstance3D<class_MeshInstance3D>` 节点后,在出现的 **Mesh** 菜单中选择\ **创建三角网格碰撞同级**\ 选项)可能得到意外的结果,因为碰撞形状是空心的。如果不想要这种行为,则应该将其拆分为多个 :ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>`:ref:`BoxShape3D<class_BoxShape3D>` 等基础网格,有些情况下也可以用 :ref:`CollisionPolygon3D<class_CollisionPolygon3D>` 代替。
.. rst-class:: classref-introduction-group
教程
----
- :doc:`使用 Area2D <../tutorials/physics/using_area_2d>`
- `3D 平台跳跃演示 <https://godotengine.org/asset-library/asset/125>`__
- `3D GUI 演示 <https://godotengine.org/asset-library/asset/127>`__
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`angular_damp<class_Area3D_property_angular_damp>` | ``0.1`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`angular_damp_space_override<class_Area3D_property_angular_damp_space_override>` | ``0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`StringName<class_StringName>` | :ref:`audio_bus_name<class_Area3D_property_audio_bus_name>` | ``&"Master"`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`audio_bus_override<class_Area3D_property_audio_bus_override>` | ``false`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`gravity<class_Area3D_property_gravity>` | ``9.8`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`gravity_direction<class_Area3D_property_gravity_direction>` | ``Vector3(0, -1, 0)`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`gravity_point<class_Area3D_property_gravity_point>` | ``false`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`gravity_point_center<class_Area3D_property_gravity_point_center>` | ``Vector3(0, -1, 0)`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`gravity_point_unit_distance<class_Area3D_property_gravity_point_unit_distance>` | ``0.0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`gravity_space_override<class_Area3D_property_gravity_space_override>` | ``0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`linear_damp<class_Area3D_property_linear_damp>` | ``0.1`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` | :ref:`linear_damp_space_override<class_Area3D_property_linear_damp_space_override>` | ``0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`monitorable<class_Area3D_property_monitorable>` | ``true`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`monitoring<class_Area3D_property_monitoring>` | ``true`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`int<class_int>` | :ref:`priority<class_Area3D_property_priority>` | ``0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`reverb_bus_amount<class_Area3D_property_reverb_bus_amount>` | ``0.0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`bool<class_bool>` | :ref:`reverb_bus_enabled<class_Area3D_property_reverb_bus_enabled>` | ``false`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`StringName<class_StringName>` | :ref:`reverb_bus_name<class_Area3D_property_reverb_bus_name>` | ``&"Master"`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`reverb_bus_uniformity<class_Area3D_property_reverb_bus_uniformity>` | ``0.0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`wind_attenuation_factor<class_Area3D_property_wind_attenuation_factor>` | ``0.0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`float<class_float>` | :ref:`wind_force_magnitude<class_Area3D_property_wind_force_magnitude>` | ``0.0`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`wind_source_path<class_Area3D_property_wind_source_path>` | ``NodePath("")`` |
+-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Area3D[]<class_Area3D>` | :ref:`get_overlapping_areas<class_Area3D_method_get_overlapping_areas>` **(** **)** |const| |
+-------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`Node3D[]<class_Node3D>` | :ref:`get_overlapping_bodies<class_Area3D_method_get_overlapping_bodies>` **(** **)** |const| |
+-------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`has_overlapping_areas<class_Area3D_method_has_overlapping_areas>` **(** **)** |const| |
+-------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`has_overlapping_bodies<class_Area3D_method_has_overlapping_bodies>` **(** **)** |const| |
+-------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`overlaps_area<class_Area3D_method_overlaps_area>` **(** :ref:`Node<class_Node>` area **)** |const| |
+-------------------------------+----------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`overlaps_body<class_Area3D_method_overlaps_body>` **(** :ref:`Node<class_Node>` body **)** |const| |
+-------------------------------+----------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
信号
----
.. _class_Area3D_signal_area_entered:
.. rst-class:: classref-signal
**area_entered** **(** :ref:`Area3D<class_Area3D>` area **)**
当接收的 ``area`` 进入此区域时发出。需要 :ref:`monitoring<class_Area3D_property_monitoring>` 被设置为 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_area_exited:
.. rst-class:: classref-signal
**area_exited** **(** :ref:`Area3D<class_Area3D>` area **)**
当接收的 ``area`` 退出此区域时发出。需要 :ref:`monitoring<class_Area3D_property_monitoring>` 被设置为 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_area_shape_entered:
.. rst-class:: classref-signal
**area_shape_entered** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area3D<class_Area3D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
当收到的 ``area``:ref:`Shape3D<class_Shape3D>` 进入这个区域的形状时发出。要求 :ref:`monitoring<class_Area3D_property_monitoring>` 被设置为 ``true``
\ ``local_shape_index````area_shape_index`` 分别包含来自这个区域和另一个区域的交互形状的索引。\ ``area_rid`` 包含另一个区域的 :ref:`RID<class_RID>`\ 。这些值可以与 :ref:`PhysicsServer3D<class_PhysicsServer3D>` 一起使用。
\ **从形状索引中获取** :ref:`CollisionShape3D<class_CollisionShape3D>` **节点的例子。**\
.. tabs::
.. code-tab:: gdscript
var other_shape_owner = area.shape_find_owner( area_shape_index)
var other_shape_node = area.shape_owner_get_owner(other_shape_owner)
var local_shape_owner = shape_find_owner(local_shape_index)
var local_shape_node = shape_owner_get_owner(local_shape_owner)
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_area_shape_exited:
.. rst-class:: classref-signal
**area_shape_exited** **(** :ref:`RID<class_RID>` area_rid, :ref:`Area3D<class_Area3D>` area, :ref:`int<class_int>` area_shape_index, :ref:`int<class_int>` local_shape_index **)**
当接收的 ``area``:ref:`Shape3D<class_Shape3D>` 退出此区域的形状时发出。需要 :ref:`monitoring<class_Area3D_property_monitoring>` 被设置为 ``true``\ 。
另见 :ref:`area_shape_entered<class_Area3D_signal_area_shape_entered>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_body_entered:
.. rst-class:: classref-signal
**body_entered** **(** :ref:`Node3D<class_Node3D>` body **)**
当接收到的 ``body`` 进入这个区域时发出。\ ``body`` 可以是一个 :ref:`PhysicsBody3D<class_PhysicsBody3D>` 或一个 :ref:`GridMap<class_GridMap>`\ 。如果 :ref:`GridMap<class_GridMap>`:ref:`MeshLibrary<class_MeshLibrary>` 配置了碰撞形状就会被检测到。需要将 :ref:`monitoring<class_Area3D_property_monitoring>` 设置为 ``true``
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_body_exited:
.. rst-class:: classref-signal
**body_exited** **(** :ref:`Node3D<class_Node3D>` body **)**
当接收到的 ``body`` 离开这个区域时发出的。\ ``body`` 可以是一个 :ref:`PhysicsBody3D<class_PhysicsBody3D>` 或一个 :ref:`GridMap<class_GridMap>`\ 。如果 :ref:`GridMap<class_GridMap>`:ref:`MeshLibrary<class_MeshLibrary>` 配置了碰撞形状,就会被检测到。要求 :ref:`monitoring<class_Area3D_property_monitoring>` 被设置为 ``true``
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_body_shape_entered:
.. rst-class:: classref-signal
**body_shape_entered** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node3D<class_Node3D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
当接收到的物体 ``body`` 中的某个 :ref:`Shape3D<class_Shape3D>` 进入此区域中的某个形状时发出。\ ``body`` 可以是 :ref:`PhysicsBody3D<class_PhysicsBody3D>`:ref:`GridMap<class_GridMap>`\ 。\ :ref:`GridMap<class_GridMap>`:ref:`MeshLibrary<class_MeshLibrary>` 配置有碰撞形状时才能够被检测到。要求将 :ref:`monitoring<class_Area3D_property_monitoring>` 设置为 ``true``\ 。
\ ``local_shape_index````body_shape_index`` 分别对应此区域中以及交互物体中正在进行交互的形状的索引。\ ``body_rid`` 包含该物体的 :ref:`RID<class_RID>`\ 。这些值可以在 :ref:`PhysicsServer3D<class_PhysicsServer3D>` 中使用。
\ **根据形状索引获取** :ref:`CollisionShape3D<class_CollisionShape3D>` **节点的示例:**\
.. tabs::
.. code-tab:: gdscript
var body_shape_owner = body.shape_find_owner(body_shape_index)
var body_shape_node = body.shape_owner_get_owner(body_shape_owner)
var local_shape_owner = shape_find_owner(local_shape_index)
var local_shape_node = shape_owner_get_owner(local_shape_owner)
.. rst-class:: classref-item-separator
----
.. _class_Area3D_signal_body_shape_exited:
.. rst-class:: classref-signal
**body_shape_exited** **(** :ref:`RID<class_RID>` body_rid, :ref:`Node3D<class_Node3D>` body, :ref:`int<class_int>` body_shape_index, :ref:`int<class_int>` local_shape_index **)**
当接收到的物体 ``body`` 中的某个 :ref:`Shape3D<class_Shape3D>` 离开此区域中的某个形状时发出。\ ``body`` 可以是 :ref:`PhysicsBody3D<class_PhysicsBody3D>`:ref:`GridMap<class_GridMap>`\ 。\ :ref:`GridMap<class_GridMap>`:ref:`MeshLibrary<class_MeshLibrary>` 配置有碰撞形状时才能够被检测到。要求将 :ref:`monitoring<class_Area3D_property_monitoring>` 设置为 ``true``\ 。
另见 :ref:`body_shape_entered<class_Area3D_signal_body_shape_entered>`\ 。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_Area3D_SpaceOverride:
.. rst-class:: classref-enumeration
enum **SpaceOverride**:
.. _class_Area3D_constant_SPACE_OVERRIDE_DISABLED:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_DISABLED** = ``0``
这个区域不影响重力/阻尼。
.. _class_Area3D_constant_SPACE_OVERRIDE_COMBINE:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE** = ``1``
该区域将其重力/阻尼值加到迄今为止计算出的任何值上(按 :ref:`priority<class_Area3D_property_priority>` 排序)。
.. _class_Area3D_constant_SPACE_OVERRIDE_COMBINE_REPLACE:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_COMBINE_REPLACE** = ``2``
该区域将其重力/阻尼值添加到到目前为止已计算的任何内容(按 :ref:`priority<class_Area3D_property_priority>` 顺序),而忽略任何较低优先级的区域。
.. _class_Area3D_constant_SPACE_OVERRIDE_REPLACE:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE** = ``3``
该区域将替换所有重力/阻尼,甚至是默认值,而忽略任何较低优先级的区域。
.. _class_Area3D_constant_SPACE_OVERRIDE_REPLACE_COMBINE:
.. rst-class:: classref-enumeration-constant
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **SPACE_OVERRIDE_REPLACE_COMBINE** = ``4``
这个区域取代了到目前为止计算出的任何重力/阻尼(按 :ref:`priority<class_Area3D_property_priority>` 顺序),但继续计算其余的区域。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_Area3D_property_angular_damp:
.. rst-class:: classref-property
:ref:`float<class_float>` **angular_damp** = ``0.1``
.. rst-class:: classref-property-setget
- void **set_angular_damp** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_angular_damp** **(** **)**
物体在此区域停止旋转的速度。代表每秒损失的角速度.
关于阻尼的更多细节,见 :ref:`ProjectSettings.physics/3d/default_angular_damp<class_ProjectSettings_property_physics/3d/default_angular_damp>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_angular_damp_space_override:
.. rst-class:: classref-property
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **angular_damp_space_override** = ``0``
.. rst-class:: classref-property-setget
- void **set_angular_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` value **)**
- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_angular_damp_space_override_mode** **(** **)**
此区域内的角阻尼计算的覆盖模式。有关可能的值,请参阅 :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_audio_bus_name:
.. rst-class:: classref-property
:ref:`StringName<class_StringName>` **audio_bus_name** = ``&"Master"``
.. rst-class:: classref-property-setget
- void **set_audio_bus_name** **(** :ref:`StringName<class_StringName>` value **)**
- :ref:`StringName<class_StringName>` **get_audio_bus_name** **(** **)**
该区域音频总线的名称。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_audio_bus_override:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **audio_bus_override** = ``false``
.. rst-class:: classref-property-setget
- void **set_audio_bus_override** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_overriding_audio_bus** **(** **)**
如果为 ``true``\ ,该区域的音频总线将覆盖默认的音频总线。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_gravity:
.. rst-class:: classref-property
:ref:`float<class_float>` **gravity** = ``9.8``
.. rst-class:: classref-property-setget
- void **set_gravity** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_gravity** **(** **)**
该区域的重力强度(以米每平方秒为单位)。这个值是重力向量的倍数。这对于改变重力大小而不改变其方向很有用。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_gravity_direction:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **gravity_direction** = ``Vector3(0, -1, 0)``
.. rst-class:: classref-property-setget
- void **set_gravity_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
- :ref:`Vector3<class_Vector3>` **get_gravity_direction** **(** **)**
该区域的重力向量(未归一化)。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_gravity_point:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **gravity_point** = ``false``
.. rst-class:: classref-property-setget
- void **set_gravity_is_point** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_gravity_a_point** **(** **)**
如果为 ``true``\ ,则从一个点(通过 :ref:`gravity_point_center<class_Area3D_property_gravity_point_center>` 设置)计算重力。参阅 :ref:`gravity_space_override<class_Area3D_property_gravity_space_override>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_gravity_point_center:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **gravity_point_center** = ``Vector3(0, -1, 0)``
.. rst-class:: classref-property-setget
- void **set_gravity_point_center** **(** :ref:`Vector3<class_Vector3>` value **)**
- :ref:`Vector3<class_Vector3>` **get_gravity_point_center** **(** **)**
如果重力是一个点(参见 :ref:`gravity_point<class_Area3D_property_gravity_point>`\ ),这将是吸引力点。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_gravity_point_unit_distance:
.. rst-class:: classref-property
:ref:`float<class_float>` **gravity_point_unit_distance** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_gravity_point_unit_distance** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_gravity_point_unit_distance** **(** **)**
重力强度等于 :ref:`gravity<class_Area3D_property_gravity>` 的距离。例如,在一个半径为 100 米、表面重力为 4.0 m/s² 的行星上,将 :ref:`gravity<class_Area3D_property_gravity>` 设置为 4.0,将单位距离设置为 100.0。重力会根据平方反比定律衰减,因此在该示例中,距中心 200 米处的重力将为 1.0 m/s²距离的两倍重力的 1/4在 50 米处为 16.0 m/s²距离的一半重力的 4 倍),依此类推。
仅当单位距离为正数时,上述情况才成立。当该属性被设置为 0.0 时,无论距离如何,重力都将保持不变。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_gravity_space_override:
.. rst-class:: classref-property
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **gravity_space_override** = ``0``
.. rst-class:: classref-property-setget
- void **set_gravity_space_override_mode** **(** :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` value **)**
- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_gravity_space_override_mode** **(** **)**
该区域内重力计算的覆盖模式。有关可能的值,请参阅 :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_linear_damp:
.. rst-class:: classref-property
:ref:`float<class_float>` **linear_damp** = ``0.1``
.. rst-class:: classref-property-setget
- void **set_linear_damp** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_linear_damp** **(** **)**
实体在此区域减速的速率。代表每秒损失的线速度。
关于阻尼的更多细节,见\ :ref:`ProjectSettings.physics/3d/default_linear_damp<class_ProjectSettings_property_physics/3d/default_linear_damp>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_linear_damp_space_override:
.. rst-class:: classref-property
:ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **linear_damp_space_override** = ``0``
.. rst-class:: classref-property-setget
- void **set_linear_damp_space_override_mode** **(** :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` value **)**
- :ref:`SpaceOverride<enum_Area3D_SpaceOverride>` **get_linear_damp_space_override_mode** **(** **)**
该区域内线性阻尼计算的覆盖模式。可取的值见 :ref:`SpaceOverride<enum_Area3D_SpaceOverride>`\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_monitorable:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **monitorable** = ``true``
.. rst-class:: classref-property-setget
- void **set_monitorable** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_monitorable** **(** **)**
如果为 ``true``\ ,其他监测区域可以检测到这个区域。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_monitoring:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **monitoring** = ``true``
.. rst-class:: classref-property-setget
- void **set_monitoring** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_monitoring** **(** **)**
``true`` 时,该区域能够检测到进入和退出该区域的实体或区域。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_priority:
.. rst-class:: classref-property
:ref:`int<class_int>` **priority** = ``0``
.. rst-class:: classref-property-setget
- void **set_priority** **(** :ref:`int<class_int>` value **)**
- :ref:`int<class_int>` **get_priority** **(** **)**
该区域的优先级。将优先处理优先级较高的区域。\ :ref:`World3D<class_World3D>` 的物理始终在所有区域之后处理。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_reverb_bus_amount:
.. rst-class:: classref-property
:ref:`float<class_float>` **reverb_bus_amount** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_reverb_amount** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_reverb_amount** **(** **)**
该区域对其相关音频应用混响的程度。范围从 ``0````1``\ ,精度为 ``0.1``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_reverb_bus_enabled:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **reverb_bus_enabled** = ``false``
.. rst-class:: classref-property-setget
- void **set_use_reverb_bus** **(** :ref:`bool<class_bool>` value **)**
- :ref:`bool<class_bool>` **is_using_reverb_bus** **(** **)**
如果为 ``true``\ ,该区域会将混响应用于其关联音频。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_reverb_bus_name:
.. rst-class:: classref-property
:ref:`StringName<class_StringName>` **reverb_bus_name** = ``&"Master"``
.. rst-class:: classref-property-setget
- void **set_reverb_bus_name** **(** :ref:`StringName<class_StringName>` value **)**
- :ref:`StringName<class_StringName>` **get_reverb_bus_name** **(** **)**
用于该区域关联音频的混响总线的名称。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_reverb_bus_uniformity:
.. rst-class:: classref-property
:ref:`float<class_float>` **reverb_bus_uniformity** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_reverb_uniformity** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_reverb_uniformity** **(** **)**
该区域的混响效果均匀的程度。范围从 ``0````1``\ ,精度为 ``0.1``\ 。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_wind_attenuation_factor:
.. rst-class:: classref-property
:ref:`float<class_float>` **wind_attenuation_factor** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_wind_attenuation_factor** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_wind_attenuation_factor** **(** **)**
风力随着距其原点的距离而衰减的指数速率。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_wind_force_magnitude:
.. rst-class:: classref-property
:ref:`float<class_float>` **wind_force_magnitude** = ``0.0``
.. rst-class:: classref-property-setget
- void **set_wind_force_magnitude** **(** :ref:`float<class_float>` value **)**
- :ref:`float<class_float>` **get_wind_force_magnitude** **(** **)**
特定区域风力的大小。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_property_wind_source_path:
.. rst-class:: classref-property
:ref:`NodePath<class_NodePath>` **wind_source_path** = ``NodePath("")``
.. rst-class:: classref-property-setget
- void **set_wind_source_path** **(** :ref:`NodePath<class_NodePath>` value **)**
- :ref:`NodePath<class_NodePath>` **get_wind_source_path** **(** **)**
:ref:`Node3D<class_Node3D>` 用于指定特定区域风力的方向和原点。方向与 :ref:`Node3D<class_Node3D>` 局部变换的 z 轴相反,其原点为 :ref:`Node3D<class_Node3D>` 局部变换的原点。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_Area3D_method_get_overlapping_areas:
.. rst-class:: classref-method
:ref:`Area3D[]<class_Area3D>` **get_overlapping_areas** **(** **)** |const|
返回相交的 **Area3D** 的列表。重叠区域的 :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` 必须是该区域的 :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` 的一部分才能被检测到。
出于性能原因(同时处理所有碰撞),此列表在物理步骤期间修改一次,而不是在实体被移动后立即修改。可考虑改用信号。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_method_get_overlapping_bodies:
.. rst-class:: classref-method
:ref:`Node3D[]<class_Node3D>` **get_overlapping_bodies** **(** **)** |const|
返回相交的 :ref:`PhysicsBody3D<class_PhysicsBody3D>`:ref:`GridMap<class_GridMap>`\ 。重叠物体的 :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` 必须是该区域 :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` 的一部分,才能被检测到。
出于性能原因(所有碰撞都是一起处理的),这个列表只会在每次物理迭代时发生一次更改,不会在对象移动后立即更改。请考虑使用信号。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_method_has_overlapping_areas:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **has_overlapping_areas** **(** **)** |const|
如果与其他 **Area3D** 相交,则返回 ``true``\ ,否则返回 ``false``\ 。重叠区域的 :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` 必须是该区域 :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` 的一部分,才能被检测到。
出于性能原因(所有碰撞都是一起处理的),重叠区域的列表只会在每次物理迭代时发生一次更改,不会在对象移动后立即更改。请考虑使用信号。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_method_has_overlapping_bodies:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **has_overlapping_bodies** **(** **)** |const|
如果与其他 :ref:`PhysicsBody3D<class_PhysicsBody3D>` 或 :ref:`GridMap<class_GridMap>` 相交,则返回 ``true``\ ,否则返回 ``false``\ 。重叠物体的 :ref:`CollisionObject3D.collision_layer<class_CollisionObject3D_property_collision_layer>` 必须是该区域 :ref:`CollisionObject3D.collision_mask<class_CollisionObject3D_property_collision_mask>` 的一部分,才能被检测到。
出于性能原因(所有碰撞都是一起处理的),重叠物体的列表只会在每次物理迭代时发生一次更改,不会在对象移动后立即更改。请考虑使用信号。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_method_overlaps_area:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **overlaps_area** **(** :ref:`Node<class_Node>` area **)** |const|
如果给定的 **Area3D** 与此 **Area3D** 相交或重叠,则返回 ``true``\ ,否则返回 ``false``\ 。
\ **注意:**\ 测试结果不反映对象移动后的即时状态。出于性能原因,重叠列表每帧只会在物理迭代前更新一次。请考虑使用信号。
.. rst-class:: classref-item-separator
----
.. _class_Area3D_method_overlaps_body:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **overlaps_body** **(** :ref:`Node<class_Node>` body **)** |const|
如果给定的物理物体与此 **Area3D** 相交或重叠,则返回 ``true``\ ,否则返回 ``false``\ 。
\ **注意:**\ 测试结果不反映对象移动后的即时状态。出于性能原因,重叠列表每帧只会在物理迭代前更新一次。请考虑使用信号。
参数 ``body`` 可以是 :ref:`PhysicsBody3D<class_PhysicsBody3D>` 实例,也可以是 :ref:`GridMap<class_GridMap>` 实例。GridMap 虽然不是物理物体,但会把图块的碰撞形状注册为虚拟物理物体。
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
.. |const| replace:: :abbr:`const (本方法没有副作用。不会修改该实例的任何成员变量。)`
.. |vararg| replace:: :abbr:`vararg (本方法除了在此处描述的参数外,还能够继续接受任意数量的参数。)`
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
.. |static| replace:: :abbr:`static (调用本方法无需实例,所以可以直接使用类名调用。)`
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效操作符。)`
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列标志构成的位掩码整数。)`