Files
godot-docs-l10n/classes/ru/class_concavepolygonshape3d.rst

120 lines
8.9 KiB
ReStructuredText
Raw Permalink 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
.. _class_ConcavePolygonShape3D:
ConcavePolygonShape3D
=====================
**Наследует:** :ref:`Shape3D<class_Shape3D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Трехмерная сетка, используемая для физики столкновений.
.. rst-class:: classref-introduction-group
Описание
----------------
Трехмерная тримеш-форма, предназначенная для использования в физике. Обычно используется для предоставления формы для :ref:`CollisionShape3D<class_CollisionShape3D>`.
Будучи просто набором взаимосвязанных треугольников, **ConcavePolygonShape3D** является наиболее свободно настраиваемой отдельной трехмерной формой. Ее можно использовать для формирования многогранников любой природы или даже форм, которые не охватывают объем. Однако **ConcavePolygonShape3D** является *полой*, даже если взаимосвязанные треугольники охватывают объем, что часто делает ее непригодной для физики или обнаружения.
\ **Примечание:** При использовании для столкновений **ConcavePolygonShape3D** предназначен для работы со статическими узлами :ref:`CollisionShape3D<class_CollisionShape3D>`, такими как :ref:`StaticBody3D<class_StaticBody3D>`, и, скорее всего, не будет хорошо себя вести для :ref:`CharacterBody3D<class_CharacterBody3D>` или :ref:`RigidBody3D<class_RigidBody3D>` в режиме, отличном от Static.
\ **Предупреждение:** Физические тела небольшого размера имеют шанс пройти сквозь эту форму при быстром движении. Это происходит, потому что в одном кадре физическое тело может находиться «снаружи» формы, а в следующем кадре — «внутри» нее. **ConcavePolygonShape3D** — полый, поэтому он не обнаружит столкновение.
\ **Производительность:** Из-за своей сложности **ConcavePolygonShape3D** является самой медленной 3D-формой столкновений для проверки столкновений. Ее использование, как правило, должно быть ограничено геометрией уровня. Для выпуклой геометрии следует использовать :ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>`. Для динамических физических тел, которым требуется вогнутое столкновение, можно использовать несколько :ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>` для представления его столкновения с помощью выпуклого разложения; см. документацию :ref:`ConvexPolygonShape3D<class_ConvexPolygonShape3D>` для получения инструкций.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- `Демонстрация 3D-физических тестов <https://godotengine.org/asset-library/asset/2747>`__
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+-------------------------+------------------------------------------------------------------------------------+-----------+
| :ref:`bool<class_bool>` | :ref:`backface_collision<class_ConcavePolygonShape3D_property_backface_collision>` | ``false`` |
+-------------------------+------------------------------------------------------------------------------------+-----------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_faces<class_ConcavePolygonShape3D_method_get_faces>`\ (\ ) |const| |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_faces<class_ConcavePolygonShape3D_method_set_faces>`\ (\ faces\: :ref:`PackedVector3Array<class_PackedVector3Array>`\ ) |
+-----------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_ConcavePolygonShape3D_property_backface_collision:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **backface_collision** = ``false`` :ref:`🔗<class_ConcavePolygonShape3D_property_backface_collision>`
.. rst-class:: classref-property-setget
- |void| **set_backface_collision_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_backface_collision_enabled**\ (\ )
Если установлено значение ``true``, столкновения происходят по обе стороны граней вогнутой формы. В противном случае они происходят только вдоль нормалей граней.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_ConcavePolygonShape3D_method_get_faces:
.. rst-class:: classref-method
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_faces**\ (\ ) |const| :ref:`🔗<class_ConcavePolygonShape3D_method_get_faces>`
Возвращает грани формы тримеша как массив вершин. Массив (длины, делящейся на три) естественным образом делится на тройки; каждая тройка вершин определяет треугольник.
.. rst-class:: classref-item-separator
----
.. _class_ConcavePolygonShape3D_method_set_faces:
.. rst-class:: classref-method
|void| **set_faces**\ (\ faces\: :ref:`PackedVector3Array<class_PackedVector3Array>`\ ) :ref:`🔗<class_ConcavePolygonShape3D_method_set_faces>`
Устанавливает грани формы тримеша (trimesh) из массива вершин. Массив ``faces`` должен состоять из троек таким образом, чтобы каждая тройка вершин определяла треугольник.
.. |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 (Нет возвращаемого значения.)`