:github_url: hide .. _class_PhysicsShapeQueryParameters3D: PhysicsShapeQueryParameters3D ============================= **Наследует:** :ref:`RefCounted` **<** :ref:`Object` Предоставляет параметры для методов :ref:`PhysicsDirectSpaceState3D`. .. rst-class:: classref-introduction-group Описание ---------------- Изменяя различные свойства этого объекта, такие как форма, вы можете настраивать параметры методов :ref:`PhysicsDirectSpaceState3D`. .. rst-class:: classref-reftable-group Свойства ---------------- .. table:: :widths: auto +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`bool` | :ref:`collide_with_areas` | ``false`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`bool` | :ref:`collide_with_bodies` | ``true`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`int` | :ref:`collision_mask` | ``4294967295`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Array`\[:ref:`RID`\] | :ref:`exclude` | ``[]`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`float` | :ref:`margin` | ``0.0`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Vector3` | :ref:`motion` | ``Vector3(0, 0, 0)`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Resource` | :ref:`shape` | | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`RID` | :ref:`shape_rid` | ``RID()`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ | :ref:`Transform3D` | :ref:`transform` | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` | +----------------------------------------------------+----------------------------------------------------------------------------------------------+-----------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Описания свойств -------------------------------- .. _class_PhysicsShapeQueryParameters3D_property_collide_with_areas: .. rst-class:: classref-property :ref:`bool` **collide_with_areas** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_collide_with_areas**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_collide_with_areas_enabled**\ (\ ) Если ``true``, запрос будет учитывать :ref:`Area3D`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_collide_with_bodies: .. rst-class:: classref-property :ref:`bool` **collide_with_bodies** = ``true`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_collide_with_bodies**\ (\ value\: :ref:`bool`\ ) - :ref:`bool` **is_collide_with_bodies_enabled**\ (\ ) Если ``true``, запрос будет учитывать :ref:`PhysicsBody3D`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_collision_mask: .. rst-class:: classref-property :ref:`int` **collision_mask** = ``4294967295`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_collision_mask**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_collision_mask**\ (\ ) Слои физики, которые запрос обнаружит (как битовую маску). По умолчанию обнаруживаются все слои столкновений. Для получения дополнительной информации см. `Слои и маски столкновений <../tutorials/physics/physics_introduction.html#collision-layers-and-masks>`__ в документации. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_exclude: .. rst-class:: classref-property :ref:`Array`\[:ref:`RID`\] **exclude** = ``[]`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_exclude**\ (\ value\: :ref:`Array`\[:ref:`RID`\]\ ) - :ref:`Array`\[:ref:`RID`\] **get_exclude**\ (\ ) Список :ref:`RID` объектов, которые будут исключены из столкновений. Используйте :ref:`CollisionObject3D.get_rid()`, чтобы получить :ref:`RID`, связанный с узлом, производным от :ref:`CollisionObject3D`. \ **Примечание:** Возвращаемый массив копируется, и любые изменения в нем не обновят исходное значение свойства. Чтобы обновить значение, вам нужно изменить возвращаемый массив, а затем снова назначить его свойству. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_margin: .. rst-class:: classref-property :ref:`float` **margin** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_margin**\ (\ value\: :ref:`float`\ ) - :ref:`float` **get_margin**\ (\ ) Граница столкновения для формы. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_motion: .. rst-class:: classref-property :ref:`Vector3` **motion** = ``Vector3(0, 0, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_motion**\ (\ value\: :ref:`Vector3`\ ) - :ref:`Vector3` **get_motion**\ (\ ) Движение запрашиваемой формы. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_shape: .. rst-class:: classref-property :ref:`Resource` **shape** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shape**\ (\ value\: :ref:`Resource`\ ) - :ref:`Resource` **get_shape**\ (\ ) :ref:`Shape3D`, который будет использоваться для запросов на столкновение/пересечение. Он хранит фактическую ссылку, которая позволяет избежать освобождения формы при использовании для запросов, поэтому всегда предпочитайте использовать его вместо :ref:`shape_rid`. .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_shape_rid: .. rst-class:: classref-property :ref:`RID` **shape_rid** = ``RID()`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_shape_rid**\ (\ value\: :ref:`RID`\ ) - :ref:`RID` **get_shape_rid**\ (\ ) Идентификатор :ref:`RID` запрашиваемой фигуры, который будет использоваться для запросов на столкновения/пересечения. Используйте его вместо :ref:`shape`, если хотите оптимизировать производительность с помощью API серверов: .. tabs:: .. code-tab:: gdscript var shape_rid = PhysicsServer3D.sphere_shape_create() var radius = 2.0 PhysicsServer3D.shape_set_data(shape_rid, radius) var params = PhysicsShapeQueryParameters3D.new() params.shape_rid = shape_rid # Выполняйте физические запросы здесь... # После завершения выполнения физических запросов освободите форму. PhysicsServer3D.free_rid(shape_rid) .. code-tab:: csharp RID shapeRid = PhysicsServer3D.SphereShapeCreate(); float radius = 2.0f; PhysicsServer3D.ShapeSetData(shapeRid, radius); var params = new PhysicsShapeQueryParameters3D(); params.ShapeRid = shapeRid; // Выполняйте физические запросы здесь... // После завершения выполнения физических запросов освободите форму. PhysicsServer3D.FreeRid(shapeRid); .. rst-class:: classref-item-separator ---- .. _class_PhysicsShapeQueryParameters3D_property_transform: .. rst-class:: classref-property :ref:`Transform3D` **transform** = ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_transform**\ (\ value\: :ref:`Transform3D`\ ) - :ref:`Transform3D` **get_transform**\ (\ ) Матрица преобразования запрашиваемой формы. .. |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 (Нет возвращаемого значения.)`