:github_url: hide .. meta:: :keywords: trigger .. _class_Area3D: Area3D ====== **Наследует:** :ref:`CollisionObject3D` **<** :ref:`Node3D` **<** :ref:`Node` **<** :ref:`Object` Область трехмерного пространства, которая обнаруживает другие :ref:`CollisionObject3D`, входящие в нее или выходящие из нее. .. rst-class:: classref-introduction-group Описание ---------------- **Area3D** — это область трехмерного пространства, определяемая одним или несколькими дочерними узлами :ref:`CollisionShape3D` или :ref:`CollisionPolygon3D`. Он определяет, когда другие :ref:`CollisionObject3D` входят в него или выходят из него, а также отслеживает, какие объекты столкновения еще не вышли из него (т. е. какие из них перекрывают его). Этот узел также может локально изменять или переопределять физические параметры (гравитация, затухание) и направлять звук на пользовательские аудиошины. \ **Примечание:** Области и тела, созданные с помощью :ref:`PhysicsServer3D`, могут не взаимодействовать с **Area3D** так, как ожидается, и могут не испускать сигналы или не отслеживать объекты правильно. \ **Предупреждение:** Использование :ref:`ConcavePolygonShape3D` внутри дочернего узла :ref:`CollisionShape3D` этого узла (созданного, например, с помощью параметра **Create Trimesh Collision Sibling** в меню **Mesh**, которое появляется при выборе узла :ref:`MeshInstance3D`) может дать неожиданные результаты, поскольку эта форма столкновения полая. Если это нежелательно, ее следует разделить на несколько :ref:`ConvexPolygonShape3D` или примитивных форм, таких как :ref:`BoxShape3D`, или в некоторых случаях ее можно заменить на :ref:`CollisionPolygon3D`. .. rst-class:: classref-introduction-group Обучающие материалы -------------------------------------- - :doc:`Использование Area2D <../tutorials/physics/using_area_2d>` - `Демо-версия 3D-платформера `__ - `Демонстрация графического интерфейса пользователя в 3D-окне просмотра `__ .. rst-class:: classref-reftable-group Свойства ---------------- .. table:: :widths: auto +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`angular_damp` | ``0.1`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`SpaceOverride` | :ref:`angular_damp_space_override` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`StringName` | :ref:`audio_bus_name` | ``&"Master"`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`audio_bus_override` | ``false`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`gravity` | ``9.8`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`Vector3` | :ref:`gravity_direction` | ``Vector3(0, -1, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`gravity_point` | ``false`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`Vector3` | :ref:`gravity_point_center` | ``Vector3(0, -1, 0)`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`gravity_point_unit_distance` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`SpaceOverride` | :ref:`gravity_space_override` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`linear_damp` | ``0.1`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`SpaceOverride` | :ref:`linear_damp_space_override` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`monitorable` | ``true`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`monitoring` | ``true`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`int` | :ref:`priority` | ``0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`reverb_bus_amount` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`bool` | :ref:`reverb_bus_enabled` | ``false`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`StringName` | :ref:`reverb_bus_name` | ``&"Master"`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`reverb_bus_uniformity` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`wind_attenuation_factor` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`float` | :ref:`wind_force_magnitude` | ``0.0`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ | :ref:`NodePath` | :ref:`wind_source_path` | ``NodePath("")`` | +-------------------------------------------------+---------------------------------------------------------------------------------------+-----------------------+ .. rst-class:: classref-reftable-group Методы ------------ .. table:: :widths: auto +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Area3D`\] | :ref:`get_overlapping_areas`\ (\ ) |const| | +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Node3D`\] | :ref:`get_overlapping_bodies`\ (\ ) |const| | +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_overlapping_areas`\ (\ ) |const| | +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_overlapping_bodies`\ (\ ) |const| | +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`overlaps_area`\ (\ area\: :ref:`Node`\ ) |const| | +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`overlaps_body`\ (\ body\: :ref:`Node`\ ) |const| | +----------------------------------------------------------+-------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Сигналы -------------- .. _class_Area3D_signal_area_entered: .. rst-class:: classref-signal **area_entered**\ (\ area\: :ref:`Area3D`\ ) :ref:`🔗` Выдается, когда полученный ``area`` входит в эту область. Требуется, чтобы :ref:`monitoring` был установлен в ``true``. .. rst-class:: classref-item-separator ---- .. _class_Area3D_signal_area_exited: .. rst-class:: classref-signal **area_exited**\ (\ area\: :ref:`Area3D`\ ) :ref:`🔗` Выдается, когда полученная ``area`` выходит из этой области. Требует, чтобы :ref:`monitoring` был установлен на ``true``. .. rst-class:: classref-item-separator ---- .. _class_Area3D_signal_area_shape_entered: .. rst-class:: classref-signal **area_shape_entered**\ (\ area_rid\: :ref:`RID`, area\: :ref:`Area3D`, area_shape_index\: :ref:`int`, local_shape_index\: :ref:`int`\ ) :ref:`🔗` Выдается, когда :ref:`Shape3D` полученного ``area`` входит в форму этой области. Требует, чтобы :ref:`monitoring` был установлен в ``true``. \ ``local_shape_index`` и ``area_shape_index`` содержат индексы взаимодействующих фигур из этой области и другой области соответственно. ``area_rid`` содержит :ref:`RID` другой области. Эти значения можно использовать с :ref:`PhysicsServer3D`. \ **Пример:** Получить узел :ref:`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**\ (\ area_rid\: :ref:`RID`, area\: :ref:`Area3D`, area_shape_index\: :ref:`int`, local_shape_index\: :ref:`int`\ ) :ref:`🔗` Выдается, когда :ref:`Shape3D` полученной ``area`` выходит из формы этой области. Требует, чтобы :ref:`monitoring` был установлен на ``true``. См. также :ref:`area_shape_entered`. .. rst-class:: classref-item-separator ---- .. _class_Area3D_signal_body_entered: .. rst-class:: classref-signal **body_entered**\ (\ body\: :ref:`Node3D`\ ) :ref:`🔗` Вызывается, когда полученное ``body`` попадает в эту область. ``body`` может быть :ref:`PhysicsBody3D` или :ref:`GridMap`. :ref:`GridMap` обнаруживаются, если в их :ref:`MeshLibrary` настроены формы столкновений. Требуется, чтобы :ref:`monitoring` был установлен на ``true``. .. rst-class:: classref-item-separator ---- .. _class_Area3D_signal_body_exited: .. rst-class:: classref-signal **body_exited**\ (\ body\: :ref:`Node3D`\ ) :ref:`🔗` Вызывается, когда полученное ``body`` покидает эту область. ``body`` может быть :ref:`PhysicsBody3D` или :ref:`GridMap`. :ref:`GridMap` обнаруживаются, если в их :ref:`MeshLibrary` настроены формы столкновений. Требуется, чтобы :ref:`monitoring` был установлен на ``true``. .. rst-class:: classref-item-separator ---- .. _class_Area3D_signal_body_shape_entered: .. rst-class:: classref-signal **body_shape_entered**\ (\ body_rid\: :ref:`RID`, body\: :ref:`Node3D`, body_shape_index\: :ref:`int`, local_shape_index\: :ref:`int`\ ) :ref:`🔗` Выдается, когда :ref:`Shape3D` полученного ``body`` входит в форму этой области. ``body`` может быть :ref:`PhysicsBody3D` или :ref:`GridMap`. :ref:`GridMap` обнаруживаются, если в их :ref:`MeshLibrary` настроены формы столкновений. Требует, чтобы :ref:`monitoring` был установлен на ``true``. \ ``local_shape_index`` и ``body_shape_index`` содержат индексы взаимодействующих форм из этой области и взаимодействующего тела соответственно. ``body_rid`` содержит :ref:`RID` тела. Эти значения можно использовать с :ref:`PhysicsServer3D`. \ **Пример:** Получите узел :ref:`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**\ (\ body_rid\: :ref:`RID`, body\: :ref:`Node3D`, body_shape_index\: :ref:`int`, local_shape_index\: :ref:`int`\ ) :ref:`🔗` Выдается, когда :ref:`Shape3D` полученного ``body`` выходит из формы этой области. ``body`` может быть :ref:`PhysicsBody3D` или :ref:`GridMap`. :ref:`GridMap` обнаруживаются, если в их :ref:`MeshLibrary` настроены формы столкновений. Требуется, чтобы :ref:`monitoring` был установлен на ``true``. См. также :ref:`body_shape_entered`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Перечисления ------------------------ .. _enum_Area3D_SpaceOverride: .. rst-class:: classref-enumeration enum **SpaceOverride**: :ref:`🔗` .. _class_Area3D_constant_SPACE_OVERRIDE_DISABLED: .. rst-class:: classref-enumeration-constant :ref:`SpaceOverride` **SPACE_OVERRIDE_DISABLED** = ``0`` Эта область не влияет на гравитацию/демпфирование. .. _class_Area3D_constant_SPACE_OVERRIDE_COMBINE: .. rst-class:: classref-enumeration-constant :ref:`SpaceOverride` **SPACE_OVERRIDE_COMBINE** = ``1`` Эта область добавляет свои значения гравитации/затухания ко всему, что было рассчитано до сих пор (в порядке :ref:`priority`). .. _class_Area3D_constant_SPACE_OVERRIDE_COMBINE_REPLACE: .. rst-class:: classref-enumeration-constant :ref:`SpaceOverride` **SPACE_OVERRIDE_COMBINE_REPLACE** = ``2`` Эта область добавляет свои значения гравитации/демпфирования ко всему, что было рассчитано до сих пор (в порядке :ref:`priority`), игнорируя любые области с более низким приоритетом. .. _class_Area3D_constant_SPACE_OVERRIDE_REPLACE: .. rst-class:: classref-enumeration-constant :ref:`SpaceOverride` **SPACE_OVERRIDE_REPLACE** = ``3`` Эта область заменяет любую гравитацию/демпфирование, даже значения по умолчанию, игнорируя любые области с более низким приоритетом. .. _class_Area3D_constant_SPACE_OVERRIDE_REPLACE_COMBINE: .. rst-class:: classref-enumeration-constant :ref:`SpaceOverride` **SPACE_OVERRIDE_REPLACE_COMBINE** = ``4`` Эта область заменяет все рассчитанные до сих пор значения гравитации/демпфирования (в порядке :ref:`priority`), но продолжает рассчитывать остальные области. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания свойств -------------------------------- .. _class_Area3D_property_angular_damp: .. rst-class:: classref-property :ref:`float` **angular_damp** = ``0.1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_angular_damp**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_angular_damp**\ (\ ) Скорость, с которой объекты прекращают вращаться в этой области. Представляет угловую скорость, потерянную в секунду. Подробнее о затухании см. :ref:`ProjectSettings.physics/3d/default_angular_damp`. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_angular_damp_space_override: .. rst-class:: classref-property :ref:`SpaceOverride` **angular_damp_space_override** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_angular_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride`\ ) - :ref:`SpaceOverride` **get_angular_damp_space_override_mode**\ (\ ) Режим переопределения для расчетов углового демпфирования в этой области. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_audio_bus_name: .. rst-class:: classref-property :ref:`StringName` **audio_bus_name** = ``&"Master"`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_audio_bus_name**\ (\ value\: :ref:`StringName`\ ) - :ref:`StringName` **get_audio_bus_name**\ (\ ) Название аудио-шины этой области. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_audio_bus_override: .. rst-class:: classref-property :ref:`bool` **audio_bus_override** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_audio_bus_override**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_overriding_audio_bus**\ (\ ) Если ``true``, аудиошина области переопределяет аудиошину по умолчанию. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_gravity: .. rst-class:: classref-property :ref:`float` **gravity** = ``9.8`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_gravity**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_gravity**\ (\ ) Интенсивность гравитации области (в метрах в секунду в квадрате). Это значение умножает направление гравитации. Это полезно для изменения силы гравитации без изменения ее направления. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_gravity_direction: .. rst-class:: classref-property :ref:`Vector3` **gravity_direction** = ``Vector3(0, -1, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_gravity_direction**\ (\ value\: :ref:`Vector3`\ ) - :ref:`Vector3` **get_gravity_direction**\ (\ ) Вектор силы тяжести области (не нормализован). .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_gravity_point: .. rst-class:: classref-property :ref:`bool` **gravity_point** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_gravity_is_point**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_gravity_a_point**\ (\ ) Если ``true``, гравитация рассчитывается из точки (задается через :ref:`gravity_point_center`). См. также :ref:`gravity_space_override`. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_gravity_point_center: .. rst-class:: classref-property :ref:`Vector3` **gravity_point_center** = ``Vector3(0, -1, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_gravity_point_center**\ (\ value\: :ref:`Vector3`\ ) - :ref:`Vector3` **get_gravity_point_center**\ (\ ) Если гравитация — это точка (см. ``membergravity_point``), то это будет точка притяжения. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_gravity_point_unit_distance: .. rst-class:: classref-property :ref:`float` **gravity_point_unit_distance** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_gravity_point_unit_distance**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_gravity_point_unit_distance**\ (\ ) Расстояние, на котором сила гравитации равна :ref:`gravity`. Например, на планете радиусом 100 метров с поверхностной силой гравитации 4,0 м/с² установите :ref:`gravity` на 4,0, а единичное расстояние на 100,0. Сила гравитации будет падать в соответствии с законом обратных квадратов, поэтому в этом примере на расстоянии 200 метров от центра сила гравитации составит 1,0 м/с² (в два раза больше расстояния, 1/4 силы гравитации), на расстоянии 50 метров она составит 16,0 м/с² (в два раза больше расстояния, 4x силы гравитации) и т. д. Вышесказанное верно только тогда, когда единичное расстояние является положительным числом. Если оно установлено на 0,0, сила гравитации будет постоянной независимо от расстояния. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_gravity_space_override: .. rst-class:: classref-property :ref:`SpaceOverride` **gravity_space_override** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_gravity_space_override_mode**\ (\ value\: :ref:`SpaceOverride`\ ) - :ref:`SpaceOverride` **get_gravity_space_override_mode**\ (\ ) Режим переопределения для расчетов гравитации в этой области. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_linear_damp: .. rst-class:: classref-property :ref:`float` **linear_damp** = ``0.1`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_linear_damp**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_linear_damp**\ (\ ) Скорость, с которой объекты прекращают движение в этой области. Представляет собой потерю линейной скорости в секунду. Подробнее о затухании см. :ref:`ProjectSettings.physics/3d/default_linear_damp`. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_linear_damp_space_override: .. rst-class:: classref-property :ref:`SpaceOverride` **linear_damp_space_override** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_linear_damp_space_override_mode**\ (\ value\: :ref:`SpaceOverride`\ ) - :ref:`SpaceOverride` **get_linear_damp_space_override_mode**\ (\ ) Режим переопределения для расчетов линейного затухания в этой области. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_monitorable: .. rst-class:: classref-property :ref:`bool` **monitorable** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_monitorable**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_monitorable**\ (\ ) Если ``true``, другие области мониторинга могут обнаружить эту область. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_monitoring: .. rst-class:: classref-property :ref:`bool` **monitoring** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_monitoring**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_monitoring**\ (\ ) Если ``true``, область обнаруживает входящие и выходящие из нее тела или области. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_priority: .. rst-class:: classref-property :ref:`int` **priority** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_priority**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_priority**\ (\ ) Приоритет области. Области с более высоким приоритетом обрабатываются в первую очередь. Физика :ref:`World3D` всегда обрабатывается в последнюю очередь, после всех областей. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_reverb_bus_amount: .. rst-class:: classref-property :ref:`float` **reverb_bus_amount** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_reverb_amount**\ (\ value\: :ref:`float`\ ) - :ref:`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` **reverb_bus_enabled** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_use_reverb_bus**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_using_reverb_bus**\ (\ ) Если ``true``, область применяет реверберацию (reverb) к связанному с ней звуку. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_reverb_bus_name: .. rst-class:: classref-property :ref:`StringName` **reverb_bus_name** = ``&"Master"`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_reverb_bus_name**\ (\ value\: :ref:`StringName`\ ) - :ref:`StringName` **get_reverb_bus_name**\ (\ ) Имя шины реверберации, используемой для звука, связанного с этой областью. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_reverb_bus_uniformity: .. rst-class:: classref-property :ref:`float` **reverb_bus_uniformity** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_reverb_uniformity**\ (\ value\: :ref:`float`\ ) - :ref:`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` **wind_attenuation_factor** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_wind_attenuation_factor**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_wind_attenuation_factor**\ (\ ) Экспоненциальная скорость, с которой сила ветра уменьшается с расстоянием от ее источника. \ **Примечание:** Эта сила ветра применяется только к узлам :ref:`SoftBody3D`. Другие физические тела в настоящее время не подвержены влиянию ветра. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_wind_force_magnitude: .. rst-class:: classref-property :ref:`float` **wind_force_magnitude** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_wind_force_magnitude**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_wind_force_magnitude**\ (\ ) Величина силы ветра, специфичной для данной области. \ **Примечание:** Эта сила ветра применяется только к узлам :ref:`SoftBody3D`. Другие физические тела в настоящее время не подвержены влиянию ветра. .. rst-class:: classref-item-separator ---- .. _class_Area3D_property_wind_source_path: .. rst-class:: classref-property :ref:`NodePath` **wind_source_path** = ``NodePath("")`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_wind_source_path**\ (\ value\: :ref:`NodePath`\ ) - :ref:`NodePath` **get_wind_source_path**\ (\ ) :ref:`Node3D`, который используется для указания направления и источника силы ветра, специфичной для области. Направление противоположно оси z локального преобразования :ref:`Node3D`, а его источник является источником локального преобразования :ref:`Node3D`. \ **Примечание:** Эта сила ветра применяется только к узлам :ref:`SoftBody3D`. Другие физические тела в настоящее время не подвержены влиянию ветра. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания метода ------------------------------ .. _class_Area3D_method_get_overlapping_areas: .. rst-class:: classref-method :ref:`Array`\[:ref:`Area3D`\] **get_overlapping_areas**\ (\ ) |const| :ref:`🔗` Возвращает список пересекающихся **Area3D**-ов. ``Member CollisionObject3D.collision_layer`` перекрывающейся области должен быть частью :ref:`CollisionObject3D.collision_mask` этой области, чтобы быть обнаруженным. Из соображений производительности (все столкновения обрабатываются одновременно) этот список изменяется один раз во время шага физики, а не сразу после перемещения объектов. Рассмотрите возможность использования сигналов вместо этого. .. rst-class:: classref-item-separator ---- .. _class_Area3D_method_get_overlapping_bodies: .. rst-class:: classref-method :ref:`Array`\[:ref:`Node3D`\] **get_overlapping_bodies**\ (\ ) |const| :ref:`🔗` Возвращает список пересекающихся :ref:`PhysicsBody3D`-ов и :ref:`GridMap`-ов. ``Member CollisionObject3D.collision_layer`` перекрывающегося тела должен быть частью :ref:`CollisionObject3D.collision_mask` этой области, чтобы его можно было обнаружить. Из соображений производительности (все столкновения обрабатываются одновременно) этот список изменяется один раз во время шага физики, а не сразу после перемещения объектов. Рассмотрите возможность использования сигналов вместо этого. .. rst-class:: classref-item-separator ---- .. _class_Area3D_method_has_overlapping_areas: .. rst-class:: classref-method :ref:`bool` **has_overlapping_areas**\ (\ ) |const| :ref:`🔗` Возвращает ``true``, если пересекает какие-либо **Area3D**, в противном случае возвращает ``false``. ``Member CollisionObject3D.collision_layer`` перекрывающейся области должен быть частью :ref:`CollisionObject3D.collision_mask` этой области, чтобы быть обнаруженным. Из соображений производительности (все столкновения обрабатываются одновременно) список перекрывающихся областей изменяется один раз во время шага физики, а не сразу после перемещения объектов. Рассмотрите возможность использования сигналов вместо этого. .. rst-class:: classref-item-separator ---- .. _class_Area3D_method_has_overlapping_bodies: .. rst-class:: classref-method :ref:`bool` **has_overlapping_bodies**\ (\ ) |const| :ref:`🔗` Возвращает ``true``, если пересекает любые :ref:`PhysicsBody3D` или :ref:`GridMap`, в противном случае возвращает ``false``. ``Member CollisionObject3D.collision_layer`` перекрывающегося тела должен быть частью :ref:`CollisionObject3D.collision_mask` этой области, чтобы быть обнаруженным. Из соображений производительности (все столкновения обрабатываются одновременно) список перекрывающихся тел изменяется один раз во время шага физики, а не сразу после перемещения объектов. Рассмотрите возможность использования сигналов вместо этого. .. rst-class:: classref-item-separator ---- .. _class_Area3D_method_overlaps_area: .. rst-class:: classref-method :ref:`bool` **overlaps_area**\ (\ area\: :ref:`Node`\ ) |const| :ref:`🔗` Возвращает ``true``, если заданная **Area3D** пересекает или перекрывает эту **Area3D**, ``false`` в противном случае. \ **Примечание:** Результат этого теста не появляется сразу после перемещения объектов. Для производительности список перекрытий обновляется один раз за кадр и перед шагом физики. Рассмотрите возможность использования сигналов вместо этого. .. rst-class:: classref-item-separator ---- .. _class_Area3D_method_overlaps_body: .. rst-class:: classref-method :ref:`bool` **overlaps_body**\ (\ body\: :ref:`Node`\ ) |const| :ref:`🔗` Возвращает ``true``, если указанное физическое тело пересекается или перекрывается с этой областью (**Area3D**), иначе ``false``. \ **Примечание:** Результат этого теста не обновляется мгновенно после перемещения объектов. Для производительности список перекрытий обновляется один раз за кадр и перед шагом физики. Рекомендуется использовать сигналы. Аргумент ``body`` может быть либо :ref:`PhysicsBody3D`, либо экземпляром :ref:`GridMap`. Хотя GridMap сам по себе не является физическим телом, он регистрирует свои тайлы с коллизиями как виртуальное физическое тело. .. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)` .. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)` .. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)` .. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)` .. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)` .. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)` .. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`