Files
godot-docs-l10n/classes/ru/class_node3d.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

1116 lines
88 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
.. meta::
:keywords: spatial
.. _class_Node3D:
Node3D
======
**Наследует:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
**Наследуется от:** :ref:`AudioListener3D<class_AudioListener3D>`, :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>`, :ref:`BoneAttachment3D<class_BoneAttachment3D>`, :ref:`Camera3D<class_Camera3D>`, :ref:`CollisionObject3D<class_CollisionObject3D>`, :ref:`CollisionPolygon3D<class_CollisionPolygon3D>`, :ref:`CollisionShape3D<class_CollisionShape3D>`, :ref:`GridMap<class_GridMap>`, :ref:`ImporterMeshInstance3D<class_ImporterMeshInstance3D>`, :ref:`Joint3D<class_Joint3D>`, :ref:`LightmapProbe<class_LightmapProbe>`, :ref:`Marker3D<class_Marker3D>`, :ref:`NavigationLink3D<class_NavigationLink3D>`, :ref:`NavigationObstacle3D<class_NavigationObstacle3D>`, :ref:`NavigationRegion3D<class_NavigationRegion3D>`, :ref:`OpenXRCompositionLayer<class_OpenXRCompositionLayer>`, :ref:`OpenXRHand<class_OpenXRHand>`, :ref:`OpenXRRenderModel<class_OpenXRRenderModel>`, :ref:`OpenXRRenderModelManager<class_OpenXRRenderModelManager>`, :ref:`Path3D<class_Path3D>`, :ref:`PathFollow3D<class_PathFollow3D>`, :ref:`RayCast3D<class_RayCast3D>`, :ref:`RemoteTransform3D<class_RemoteTransform3D>`, :ref:`ShapeCast3D<class_ShapeCast3D>`, :ref:`Skeleton3D<class_Skeleton3D>`, :ref:`SkeletonModifier3D<class_SkeletonModifier3D>`, :ref:`SpringArm3D<class_SpringArm3D>`, :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>`, :ref:`VehicleWheel3D<class_VehicleWheel3D>`, :ref:`VisualInstance3D<class_VisualInstance3D>`, :ref:`XRFaceModifier3D<class_XRFaceModifier3D>`, :ref:`XRNode3D<class_XRNode3D>`, :ref:`XROrigin3D<class_XROrigin3D>`
Базовый объект в трехмерном пространстве, наследуемый всеми трехмерными узлами.
.. rst-class:: classref-introduction-group
Описание
----------------
Узел **Node3D** является базовым представлением узла в трехмерном пространстве. Все остальные трехмерные узлы наследуются от этого класса.
Аффинные операции (перемещение, вращение, масштабирование) вычисляются в системе координат относительно родительского узла, если только :ref:`top_level<class_Node3D_property_top_level>` **Node3D** не равен ``true``. В этой системе координат аффинные операции соответствуют прямым аффинным операциям над :ref:`transform<class_Node3D_property_transform>` **Node3D**. Термин *родительское пространство* относится к этой системе координат. Система координат, прикрепленная к самому **Node3D**, называется локальной системой координат объекта или *локальным пространством*.
\ **Примечание:** Если не указано иное, все методы, которым требуются параметры угла, должны получать углы в *радианах*. Чтобы преобразовать градусы в радианы, используйте :ref:`@GlobalScope.deg_to_rad()<class_@GlobalScope_method_deg_to_rad>`.
\ **Примечание:** В Godot 3 и более ранних версиях **Node3D** назывался *Spatial*.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- :doc:`Введение в 3D <../tutorials/3d/introduction_to_3d>`
- `Все демоверсии 3D <https://github.com/godotengine/godot-demo-projects/tree/master/3d>`__
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Basis<class_Basis>` | :ref:`basis<class_Node3D_property_basis>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Basis<class_Basis>` | :ref:`global_basis<class_Node3D_property_global_basis>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`global_position<class_Node3D_property_global_position>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`global_rotation<class_Node3D_property_global_rotation>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`global_rotation_degrees<class_Node3D_property_global_rotation_degrees>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`global_transform<class_Node3D_property_global_transform>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`position<class_Node3D_property_position>` | ``Vector3(0, 0, 0)`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Quaternion<class_Quaternion>` | :ref:`quaternion<class_Node3D_property_quaternion>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`rotation<class_Node3D_property_rotation>` | ``Vector3(0, 0, 0)`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`rotation_degrees<class_Node3D_property_rotation_degrees>` | |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`RotationEditMode<enum_Node3D_RotationEditMode>` | :ref:`rotation_edit_mode<class_Node3D_property_rotation_edit_mode>` | ``0`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>` | :ref:`rotation_order<class_Node3D_property_rotation_order>` | ``2`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`scale<class_Node3D_property_scale>` | ``Vector3(1, 1, 1)`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`top_level<class_Node3D_property_top_level>` | ``false`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`transform<class_Node3D_property_transform>` | ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`visibility_parent<class_Node3D_property_visibility_parent>` | ``NodePath("")`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`visible<class_Node3D_property_visible>` | ``true`` |
+-------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_gizmo<class_Node3D_method_add_gizmo>`\ (\ gizmo\: :ref:`Node3DGizmo<class_Node3DGizmo>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_gizmos<class_Node3D_method_clear_gizmos>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_subgizmo_selection<class_Node3D_method_clear_subgizmo_selection>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`force_update_transform<class_Node3D_method_force_update_transform>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Node3DGizmo<class_Node3DGizmo>`\] | :ref:`get_gizmos<class_Node3D_method_get_gizmos>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`get_global_transform_interpolated<class_Node3D_method_get_global_transform_interpolated>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Node3D<class_Node3D>` | :ref:`get_parent_node_3d<class_Node3D_method_get_parent_node_3d>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`World3D<class_World3D>` | :ref:`get_world_3d<class_Node3D_method_get_world_3d>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`global_rotate<class_Node3D_method_global_rotate>`\ (\ axis\: :ref:`Vector3<class_Vector3>`, angle\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`global_scale<class_Node3D_method_global_scale>`\ (\ scale\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`global_translate<class_Node3D_method_global_translate>`\ (\ offset\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`hide<class_Node3D_method_hide>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_local_transform_notification_enabled<class_Node3D_method_is_local_transform_notification_enabled>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_scale_disabled<class_Node3D_method_is_scale_disabled>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_transform_notification_enabled<class_Node3D_method_is_transform_notification_enabled>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_visible_in_tree<class_Node3D_method_is_visible_in_tree>`\ (\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`look_at<class_Node3D_method_look_at>`\ (\ target\: :ref:`Vector3<class_Vector3>`, up\: :ref:`Vector3<class_Vector3>` = Vector3(0, 1, 0), use_model_front\: :ref:`bool<class_bool>` = false\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`look_at_from_position<class_Node3D_method_look_at_from_position>`\ (\ position\: :ref:`Vector3<class_Vector3>`, target\: :ref:`Vector3<class_Vector3>`, up\: :ref:`Vector3<class_Vector3>` = Vector3(0, 1, 0), use_model_front\: :ref:`bool<class_bool>` = false\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`orthonormalize<class_Node3D_method_orthonormalize>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`rotate<class_Node3D_method_rotate>`\ (\ axis\: :ref:`Vector3<class_Vector3>`, angle\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`rotate_object_local<class_Node3D_method_rotate_object_local>`\ (\ axis\: :ref:`Vector3<class_Vector3>`, angle\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`rotate_x<class_Node3D_method_rotate_x>`\ (\ angle\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`rotate_y<class_Node3D_method_rotate_y>`\ (\ angle\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`rotate_z<class_Node3D_method_rotate_z>`\ (\ angle\: :ref:`float<class_float>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`scale_object_local<class_Node3D_method_scale_object_local>`\ (\ scale\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_disable_scale<class_Node3D_method_set_disable_scale>`\ (\ disable\: :ref:`bool<class_bool>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_identity<class_Node3D_method_set_identity>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ignore_transform_notification<class_Node3D_method_set_ignore_transform_notification>`\ (\ enabled\: :ref:`bool<class_bool>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_notify_local_transform<class_Node3D_method_set_notify_local_transform>`\ (\ enable\: :ref:`bool<class_bool>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_notify_transform<class_Node3D_method_set_notify_transform>`\ (\ enable\: :ref:`bool<class_bool>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_subgizmo_selection<class_Node3D_method_set_subgizmo_selection>`\ (\ gizmo\: :ref:`Node3DGizmo<class_Node3DGizmo>`, id\: :ref:`int<class_int>`, transform\: :ref:`Transform3D<class_Transform3D>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`show<class_Node3D_method_show>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`to_global<class_Node3D_method_to_global>`\ (\ local_point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`to_local<class_Node3D_method_to_local>`\ (\ global_point\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`translate<class_Node3D_method_translate>`\ (\ offset\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`translate_object_local<class_Node3D_method_translate_object_local>`\ (\ offset\: :ref:`Vector3<class_Vector3>`\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`update_gizmos<class_Node3D_method_update_gizmos>`\ (\ ) |
+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Сигналы
--------------
.. _class_Node3D_signal_visibility_changed:
.. rst-class:: classref-signal
**visibility_changed**\ (\ ) :ref:`🔗<class_Node3D_signal_visibility_changed>`
Выдается при изменении видимости этого узла (см. :ref:`visible<class_Node3D_property_visible>` и :ref:`is_visible_in_tree()<class_Node3D_method_is_visible_in_tree>`).
Этот сигнал выдается *после* связанного :ref:`NOTIFICATION_VISIBILITY_CHANGED<class_Node3D_constant_NOTIFICATION_VISIBILITY_CHANGED>` уведомления.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Перечисления
------------------------
.. _enum_Node3D_RotationEditMode:
.. rst-class:: classref-enumeration
enum **RotationEditMode**: :ref:`🔗<enum_Node3D_RotationEditMode>`
.. _class_Node3D_constant_ROTATION_EDIT_MODE_EULER:
.. rst-class:: classref-enumeration-constant
:ref:`RotationEditMode<enum_Node3D_RotationEditMode>` **ROTATION_EDIT_MODE_EULER** = ``0``
Вращение редактируется с помощью :ref:`Vector3<class_Vector3>` в `Углах Эйлера <https://en.wikipedia.org/wiki/Euler_angles>`__.
.. _class_Node3D_constant_ROTATION_EDIT_MODE_QUATERNION:
.. rst-class:: classref-enumeration-constant
:ref:`RotationEditMode<enum_Node3D_RotationEditMode>` **ROTATION_EDIT_MODE_QUATERNION** = ``1``
Вращение редактируется с помощью :ref:`Quaternion<class_Quaternion>`.
.. _class_Node3D_constant_ROTATION_EDIT_MODE_BASIS:
.. rst-class:: classref-enumeration-constant
:ref:`RotationEditMode<enum_Node3D_RotationEditMode>` **ROTATION_EDIT_MODE_BASIS** = ``2``
Вращение редактируется с использованием :ref:`Basis<class_Basis>`. В этом режиме оси необработанного :ref:`basis<class_Node3D_property_basis>` могут быть свободно изменены, но свойство :ref:`scale<class_Node3D_property_scale>` недоступно.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Константы
------------------
.. _class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_TRANSFORM_CHANGED** = ``2000`` :ref:`🔗<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>`
Уведомление получено, когда :ref:`global_transform<class_Node3D_property_global_transform>` этого узла изменяется, если :ref:`is_transform_notification_enabled()<class_Node3D_method_is_transform_notification_enabled>` имеет значение ``true``. См. также :ref:`set_notify_transform()<class_Node3D_method_set_notify_transform>`.
\ **Примечание:** Большинство 3D-узлов, таких как :ref:`VisualInstance3D<class_VisualInstance3D>` или :ref:`CollisionObject3D<class_CollisionObject3D>`, автоматически включают это для корректной работы.
\ **Примечание:** В редакторе узлы будут распространять это уведомление своим дочерним элементам, если присоединен гизмо (см. :ref:`add_gizmo()<class_Node3D_method_add_gizmo>`).
.. _class_Node3D_constant_NOTIFICATION_ENTER_WORLD:
.. rst-class:: classref-constant
**NOTIFICATION_ENTER_WORLD** = ``41`` :ref:`🔗<class_Node3D_constant_NOTIFICATION_ENTER_WORLD>`
Уведомление получено, когда этот узел зарегистрирован в новом :ref:`World3D<class_World3D>` (см. :ref:`get_world_3d()<class_Node3D_method_get_world_3d>`).
.. _class_Node3D_constant_NOTIFICATION_EXIT_WORLD:
.. rst-class:: classref-constant
**NOTIFICATION_EXIT_WORLD** = ``42`` :ref:`🔗<class_Node3D_constant_NOTIFICATION_EXIT_WORLD>`
Notification received when this node is unregistered from the current :ref:`World3D<class_World3D>` (see :ref:`get_world_3d()<class_Node3D_method_get_world_3d>`).
This notification is sent in reversed order.
.. _class_Node3D_constant_NOTIFICATION_VISIBILITY_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_VISIBILITY_CHANGED** = ``43`` :ref:`🔗<class_Node3D_constant_NOTIFICATION_VISIBILITY_CHANGED>`
Уведомление получено, когда видимость этого узла изменяется (см. :ref:`visible<class_Node3D_property_visible>` и :ref:`is_visible_in_tree()<class_Node3D_method_is_visible_in_tree>`).
Это уведомление получено *до* связанного сигнала :ref:`visibility_changed<class_Node3D_signal_visibility_changed>`.
.. _class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED:
.. rst-class:: classref-constant
**NOTIFICATION_LOCAL_TRANSFORM_CHANGED** = ``44`` :ref:`🔗<class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>`
Уведомление получено, когда изменяется :ref:`transform<class_Node3D_property_transform>` этого узла, если :ref:`is_local_transform_notification_enabled()<class_Node3D_method_is_local_transform_notification_enabled>` равно ``true``. Это не получено, когда изменяется :ref:`transform<class_Node3D_property_transform>` родительского **Node3D**. См. также :ref:`set_notify_local_transform()<class_Node3D_method_set_notify_local_transform>`.
\ **Примечание:** Некоторые 3D-узлы, такие как :ref:`CSGShape3D<class_CSGShape3D>` или :ref:`CollisionShape3D<class_CollisionShape3D>`, автоматически включают это для правильной работы.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_Node3D_property_basis:
.. rst-class:: classref-property
:ref:`Basis<class_Basis>` **basis** :ref:`🔗<class_Node3D_property_basis>`
.. rst-class:: classref-property-setget
- |void| **set_basis**\ (\ value\: :ref:`Basis<class_Basis>`\ )
- :ref:`Basis<class_Basis>` **get_basis**\ (\ )
Базис свойства :ref:`transform<class_Node3D_property_transform>`. Представляет поворот, масштаб и сдвиг этого узла в родительском пространстве (относительно родительского узла).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_global_basis:
.. rst-class:: classref-property
:ref:`Basis<class_Basis>` **global_basis** :ref:`🔗<class_Node3D_property_global_basis>`
.. rst-class:: classref-property-setget
- |void| **set_global_basis**\ (\ value\: :ref:`Basis<class_Basis>`\ )
- :ref:`Basis<class_Basis>` **get_global_basis**\ (\ )
Базис свойства :ref:`global_transform<class_Node3D_property_global_transform>`. Представляет поворот, масштаб и сдвиг этого узла в глобальном пространстве (относительно мира).
\ **Примечание:** Если узел не находится внутри дерева, получение этого свойства завершается неудачей и возвращается :ref:`Basis.IDENTITY<class_Basis_constant_IDENTITY>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_global_position:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **global_position** :ref:`🔗<class_Node3D_property_global_position>`
.. rst-class:: classref-property-setget
- |void| **set_global_position**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_global_position**\ (\ )
Глобальное положение (перемещение) этого узла в глобальном пространстве (относительно мира). Это эквивалентно :ref:`global_transform<class_Node3D_property_global_transform>` и :ref:`Transform3D.origin<class_Transform3D_property_origin>`.
\ **Примечание:** Если узел не находится внутри дерева, получение этого свойства завершается неудачей и возвращается :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_global_rotation:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **global_rotation** :ref:`🔗<class_Node3D_property_global_rotation>`
.. rst-class:: classref-property-setget
- |void| **set_global_rotation**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_global_rotation**\ (\ )
Глобальное вращение этого узла как `углы Эйлера <https://en.wikipedia.org/wiki/Euler_angles>`__, в радианах и в глобальном пространстве (относительно мира). Это значение получается из вращения :ref:`global_basis<class_Node3D_property_global_basis>`.
- :ref:`Vector3.x<class_Vector3_property_x>` — это угол вокруг глобальной оси X (pitch);
- :ref:`Vector3.y<class_Vector3_property_y>` — это угол вокруг глобальной оси Y (yaw);
- :ref:`Vector3.z<class_Vector3_property_z>` — это угол вокруг глобальной оси Z (roll).
\ **Примечание:** В отличие от :ref:`rotation<class_Node3D_property_rotation>`, это свойство всегда следует соглашению YXZ (:ref:`@GlobalScope.EULER_ORDER_YXZ<class_@GlobalScope_constant_EULER_ORDER_YXZ>`).
\ **Примечание:** Если узел не находится внутри дерева, получение этого свойства завершается ошибкой и возвращается :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_global_rotation_degrees:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **global_rotation_degrees** :ref:`🔗<class_Node3D_property_global_rotation_degrees>`
.. rst-class:: classref-property-setget
- |void| **set_global_rotation_degrees**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_global_rotation_degrees**\ (\ )
:ref:`global_rotation<class_Node3D_property_global_rotation>` этого узла в градусах вместо радиан.
\ **Примечание:** Если узел не находится внутри дерева, получение этого свойства завершается неудачей и возвращается :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_global_transform:
.. rst-class:: classref-property
:ref:`Transform3D<class_Transform3D>` **global_transform** :ref:`🔗<class_Node3D_property_global_transform>`
.. rst-class:: classref-property-setget
- |void| **set_global_transform**\ (\ value\: :ref:`Transform3D<class_Transform3D>`\ )
- :ref:`Transform3D<class_Transform3D>` **get_global_transform**\ (\ )
Преобразование этого узла в глобальном пространстве (относительно мира). Содержит и представляет :ref:`global_position<class_Node3D_property_global_position>`, :ref:`global_rotation<class_Node3D_property_global_rotation>` и глобальный масштаб этого узла.
\ **Примечание:** Если узел не находится внутри дерева, получение этого свойства завершается неудачей и возвращается :ref:`Transform3D.IDENTITY<class_Transform3D_constant_IDENTITY>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_position:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **position** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_Node3D_property_position>`
.. rst-class:: classref-property-setget
- |void| **set_position**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_position**\ (\ )
Положение (перемещение) этого узла в родительском пространстве (относительно родительского узла). Это эквивалентно :ref:`transform<class_Node3D_property_transform>` :ref:`Transform3D.origin<class_Transform3D_property_origin>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_quaternion:
.. rst-class:: classref-property
:ref:`Quaternion<class_Quaternion>` **quaternion** :ref:`🔗<class_Node3D_property_quaternion>`
.. rst-class:: classref-property-setget
- |void| **set_quaternion**\ (\ value\: :ref:`Quaternion<class_Quaternion>`\ )
- :ref:`Quaternion<class_Quaternion>` **get_quaternion**\ (\ )
Вращение этого узла, представленного как :ref:`Quaternion<class_Quaternion>` в родительском пространстве (относительно родительского узла). Это значение получается из вращения :ref:`basic<class_Node3D_property_basic>`.
\ **Примечание:** Кватернионы гораздо больше подходят для трехмерной математики, но менее интуитивны. Установка этого свойства может быть полезна для интерполяции (см. :ref:`Quaternion.slerp()<class_Quaternion_method_slerp>`).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_rotation:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **rotation** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_Node3D_property_rotation>`
.. rst-class:: classref-property-setget
- |void| **set_rotation**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_rotation**\ (\ )
Вращение этого узла как `углы Эйлера <https://en.wikipedia.org/wiki/Euler_angles>`__, в радианах и в родительском пространстве (относительно родительского узла). Это значение получается из вращения :ref:`basic<class_Node3D_property_basic>`.
- :ref:`Vector3.x<class_Vector3_property_x>` - это угол вокруг локальной оси X (тангаж);
- :ref:`Vector3.y<class_Vector3_property_y>` - это угол вокруг локальной оси Y (рыскание);
- :ref:`Vector3.z<class_Vector3_property_z>` - это угол вокруг локальной оси Z (крен).
Порядок каждого последовательного вращения можно изменить с помощью :ref:`rotation_order<class_Node3D_property_rotation_order>` (см. константы :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>`). По умолчанию используется соглашение YXZ (:ref:`@GlobalScope.EULER_ORDER_YXZ<class_@GlobalScope_constant_EULER_ORDER_YXZ>`).
\ **Примечание:** Это свойство редактируется в градусах в инспекторе. Если вы хотите использовать градусы в скрипте, используйте :ref:`rotation_degrees<class_Node3D_property_rotation_degrees>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_rotation_degrees:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **rotation_degrees** :ref:`🔗<class_Node3D_property_rotation_degrees>`
.. rst-class:: classref-property-setget
- |void| **set_rotation_degrees**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_rotation_degrees**\ (\ )
:ref:`rotation<class_Node3D_property_rotation>` этого узла в градусах вместо радиан.
\ **Примечание:** Это **не** свойство, доступное во вкладке инспектора.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_rotation_edit_mode:
.. rst-class:: classref-property
:ref:`RotationEditMode<enum_Node3D_RotationEditMode>` **rotation_edit_mode** = ``0`` :ref:`🔗<class_Node3D_property_rotation_edit_mode>`
.. rst-class:: classref-property-setget
- |void| **set_rotation_edit_mode**\ (\ value\: :ref:`RotationEditMode<enum_Node3D_RotationEditMode>`\ )
- :ref:`RotationEditMode<enum_Node3D_RotationEditMode>` **get_rotation_edit_mode**\ (\ )
Как поворот и масштаб этого узла отображаются в доке инспектора.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_rotation_order:
.. rst-class:: classref-property
:ref:`EulerOrder<enum_@GlobalScope_EulerOrder>` **rotation_order** = ``2`` :ref:`🔗<class_Node3D_property_rotation_order>`
.. rst-class:: classref-property-setget
- |void| **set_rotation_order**\ (\ value\: :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>`\ )
- :ref:`EulerOrder<enum_@GlobalScope_EulerOrder>` **get_rotation_order**\ (\ )
Порядок вращения осей свойства :ref:`rotation<class_Node3D_property_rotation>`. Окончательная ориентация вычисляется путем вращения вокруг локальных осей X, Y и Z в этом порядке.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_scale:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **scale** = ``Vector3(1, 1, 1)`` :ref:`🔗<class_Node3D_property_scale>`
.. rst-class:: classref-property-setget
- |void| **set_scale**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_scale**\ (\ )
Масштаб этого узла в локальном пространстве (относительно этого узла). Это значение получается из масштаба :ref:`basis<class_Node3D_property_basis>`.
\ **Примечание:** Поведение некоторых типов 3D-узлов не зависит от этого свойства. К ним относятся :ref:`Light3D<class_Light3D>`, :ref:`Camera3D<class_Camera3D>`, :ref:`AudioStreamPlayer3D<class_AudioStreamPlayer3D>` и другие.
\ **Предупреждение:** Компоненты масштаба должны быть либо все положительными, либо все отрицательными и **не** точно ``0.0``. В противном случае будет невозможно получить масштаб из :ref:`basis<class_Node3D_property_basis>`. Это может привести к потере предполагаемого масштаба при перезагрузке с диска и потенциально к другому нестабильному поведению.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_top_level:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **top_level** = ``false`` :ref:`🔗<class_Node3D_property_top_level>`
.. rst-class:: classref-property-setget
- |void| **set_as_top_level**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_set_as_top_level**\ (\ )
Если ``true``, узел не наследует свои преобразования от своего родителя. Таким образом, преобразования узлов будут только в глобальном пространстве, что также означает, что :ref:`global_transform<class_Node3D_property_global_transform>` и :ref:`transform<class_Node3D_property_transform>` будут идентичны.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_transform:
.. rst-class:: classref-property
:ref:`Transform3D<class_Transform3D>` **transform** = ``Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)`` :ref:`🔗<class_Node3D_property_transform>`
.. rst-class:: classref-property-setget
- |void| **set_transform**\ (\ value\: :ref:`Transform3D<class_Transform3D>`\ )
- :ref:`Transform3D<class_Transform3D>` **get_transform**\ (\ )
Локальное преобразование этого узла в родительском пространстве (относительно родительского узла). Содержит и представляет :ref:`position<class_Node3D_property_position>`, :ref:`rotation<class_Node3D_property_rotation>` и :ref:`scale<class_Node3D_property_scale>` этого узла.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_visibility_parent:
.. rst-class:: classref-property
:ref:`NodePath<class_NodePath>` **visibility_parent** = ``NodePath("")`` :ref:`🔗<class_Node3D_property_visibility_parent>`
.. rst-class:: classref-property-setget
- |void| **set_visibility_parent**\ (\ value\: :ref:`NodePath<class_NodePath>`\ )
- :ref:`NodePath<class_NodePath>` **get_visibility_parent**\ (\ )
Путь к родительскому узлу диапазона видимости для данного узла и его дочерних элементов. Родителем видимости должен быть :ref:`GeometryInstance3D<class_GeometryInstance3D>`.
Любой визуальный экземпляр будет видимым только если его родитель видимости (и все вышестоящие элементы в иерархии видимости) скрыты из-за приближения к камере ближе, чем указано в :ref:`GeometryInstance3D.visibility_range_begin<class_GeometryInstance3D_property_visibility_range_begin>`. Узлы, скрытые через свойство :ref:`visible<class_Node3D_property_visible>`, фактически исключаются из дерева зависимостей видимости, поэтому зависимые экземпляры не учитывают скрытый узел или его дочерние элементы.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_property_visible:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **visible** = ``true`` :ref:`🔗<class_Node3D_property_visible>`
.. rst-class:: classref-property-setget
- |void| **set_visible**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_visible**\ (\ )
Если ``true``, этот узел может быть видимым. Узел отображается только тогда, когда все его предки также видны. Это означает, что :ref:`is_visible_in_tree()<class_Node3D_method_is_visible_in_tree>` должен возвращать ``true``.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_Node3D_method_add_gizmo:
.. rst-class:: classref-method
|void| **add_gizmo**\ (\ gizmo\: :ref:`Node3DGizmo<class_Node3DGizmo>`\ ) :ref:`🔗<class_Node3D_method_add_gizmo>`
Прикрепляет заданный ``gizmo`` к этому узлу. Работает только в редакторе.
\ **Примечание:** ``gizmo`` должен быть :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`. Тип аргумента — :ref:`Node3DGizmo<class_Node3DGizmo>`, чтобы избежать зависимости от классов редактора в **Node3D**.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_clear_gizmos:
.. rst-class:: classref-method
|void| **clear_gizmos**\ (\ ) :ref:`🔗<class_Node3D_method_clear_gizmos>`
Очищает все объекты :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, прикрепленные к этому узлу. Работает только в редакторе.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_clear_subgizmo_selection:
.. rst-class:: classref-method
|void| **clear_subgizmo_selection**\ (\ ) :ref:`🔗<class_Node3D_method_clear_subgizmo_selection>`
Отменяет выбор всех подэлементов для этого узла. Полезно вызывать, когда выбранный подэлемент может больше не существовать после изменения свойства. Работает только в редакторе.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_force_update_transform:
.. rst-class:: classref-method
|void| **force_update_transform**\ (\ ) :ref:`🔗<class_Node3D_method_force_update_transform>`
Заставляет обновить :ref:`global_transform<class_Node3D_property_global_transform>` узла, отправляя :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>`. Не удается, если узел не находится внутри дерева.
\ **Примечание:** Из соображений производительности изменения преобразования обычно накапливаются и применяются *один раз* в конце кадра. Обновление также распространяется на дочерние элементы **Node3D**. Поэтому используйте этот метод только тогда, когда вам нужно актуальное преобразование (например, во время физических операций).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_get_gizmos:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Node3DGizmo<class_Node3DGizmo>`\] **get_gizmos**\ (\ ) |const| :ref:`🔗<class_Node3D_method_get_gizmos>`
Возвращает все объекты :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, прикрепленные к этому узлу. Работает только в редакторе.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_get_global_transform_interpolated:
.. rst-class:: classref-method
:ref:`Transform3D<class_Transform3D>` **get_global_transform_interpolated**\ (\ ) :ref:`🔗<class_Node3D_method_get_global_transform_interpolated>`
При использовании интерполяции физики могут возникнуть обстоятельства, в которых вам захочется узнать интерполированное (отображаемое) преобразование узла, а не стандартное преобразование (которое может быть точным только до последнего физического тика).
Это особенно важно для кадровых операций, которые выполняются в :ref:`Node._process()<class_Node_private_method__process>`, а не в :ref:`Node._physics_process()<class_Node_private_method__physics_process>`. Примерами являются :ref:`Camera3D<class_Camera3D>`-ы, фокусирующиеся на узле, или поиск места для стрельбы лазерами в кадре, а не в такте физики.
\ **Примечание:** Эта функция создает интерполяционный насос на **Node3D** при первом вызове, который может реагировать на сбросы интерполяции физики. Если у вас возникли проблемы с "полосами" при первоначальном следовании **Node3D**, обязательно вызовите :ref:`get_global_transform_interpolated()<class_Node3D_method_get_global_transform_interpolated>` хотя бы один раз *перед* сбросом интерполяции физики **Node3D**.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_get_parent_node_3d:
.. rst-class:: classref-method
:ref:`Node3D<class_Node3D>` **get_parent_node_3d**\ (\ ) |const| :ref:`🔗<class_Node3D_method_get_parent_node_3d>`
Возвращает родительский **Node3D**, который напрямую влияет на :ref:`global_transform<class_Node3D_property_global_transform>` этого узла. Возвращает ``null``, если родительского элемента не существует, родительский элемент не является **Node3D** или :ref:`top_level<class_Node3D_property_top_level>` равен ``true``.
\ **Примечание:** Этот метод не всегда эквивалентен :ref:`Node.get_parent()<class_Node_method_get_parent>`, который не учитывает :ref:`top_level<class_Node3D_property_top_level>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_get_world_3d:
.. rst-class:: classref-method
:ref:`World3D<class_World3D>` **get_world_3d**\ (\ ) |const| :ref:`🔗<class_Node3D_method_get_world_3d>`
Возвращает :ref:`World3D<class_World3D>`, в котором зарегистрирован этот узел.
Обычно это то же самое, что и мир, используемый областью просмотра этого узла (см. :ref:`Node.get_viewport()<class_Node_method_get_viewport>` и :ref:`Viewport.find_world_3d()<class_Viewport_method_find_world_3d>`).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_global_rotate:
.. rst-class:: classref-method
|void| **global_rotate**\ (\ axis\: :ref:`Vector3<class_Vector3>`, angle\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Node3D_method_global_rotate>`
Поворачивает :ref:`global_basis<class_Node3D_property_global_basis>` этого узла вокруг глобальной ``axis`` на заданный ``angle``, в радианах. Эта операция вычисляется в глобальном пространстве (относительно мира) и сохраняет :ref:`global_position<class_Node3D_property_global_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_global_scale:
.. rst-class:: classref-method
|void| **global_scale**\ (\ scale\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Node3D_method_global_scale>`
Масштабирует :ref:`global_basis<class_Node3D_property_global_basis>` этого узла на заданный коэффициент ``scale``. Эта операция вычисляется в глобальном пространстве (относительно мира) и сохраняет :ref:`global_position<class_Node3D_property_global_position>`.
\ **Примечание:** Этот метод не следует путать со свойством :ref:`scale<class_Node3D_property_scale>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_global_translate:
.. rst-class:: classref-method
|void| **global_translate**\ (\ offset\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Node3D_method_global_translate>`
Добавляет заданное перемещение ``offset`` к :ref:`global_position<class_Node3D_property_global_position>` узла в глобальном пространстве (относительно мира).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_hide:
.. rst-class:: classref-method
|void| **hide**\ (\ ) :ref:`🔗<class_Node3D_method_hide>`
Предотвращает отображение этого узла. Эквивалентно установке :ref:`visible<class_Node3D_property_visible>` в ``false``. Это противоположно :ref:`show()<class_Node3D_method_show>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_is_local_transform_notification_enabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_local_transform_notification_enabled**\ (\ ) |const| :ref:`🔗<class_Node3D_method_is_local_transform_notification_enabled>`
Возвращает ``true``, если узел получает :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>` всякий раз, когда изменяется :ref:`transform<class_Node3D_property_transform>`. Это включается с помощью :ref:`set_notify_local_transform()<class_Node3D_method_set_notify_local_transform>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_is_scale_disabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_scale_disabled**\ (\ ) |const| :ref:`🔗<class_Node3D_method_is_scale_disabled>`
Возвращает ``true``, если :ref:`global_transform<class_Node3D_property_global_transform>` этого узла автоматически ортонормализован. Это приводит к тому, что этот узел не выглядит искаженным, как если бы его глобальный масштаб был установлен на :ref:`Vector3.ONE<class_Vector3_constant_ONE>` (или его отрицательный аналог). См. также :ref:`set_disable_scale()<class_Node3D_method_set_disable_scale>` и :ref:`orthonormalize()<class_Node3D_method_orthonormalize>`.
\ **Примечание:** :ref:`transform<class_Node3D_property_transform>` не затрагивается этой настройкой.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_is_transform_notification_enabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_transform_notification_enabled**\ (\ ) |const| :ref:`🔗<class_Node3D_method_is_transform_notification_enabled>`
Возвращает ``true``, если узел получает :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>` всякий раз, когда изменяется :ref:`global_transform<class_Node3D_property_global_transform>`. Это включается с помощью :ref:`set_notify_transform()<class_Node3D_method_set_notify_transform>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_is_visible_in_tree:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_visible_in_tree**\ (\ ) |const| :ref:`🔗<class_Node3D_method_is_visible_in_tree>`
Возвращает ``true``, если этот узел находится внутри дерева сцены и свойство :ref:`visible<class_Node3D_property_visible>` равно ``true`` для этого узла и всех его предков **Node3D** *в последовательности*. Предок любого другого типа (например, :ref:`Node<class_Node>` или :ref:`Node2D<class_Node2D>`) нарушает последовательность. См. также :ref:`Node.get_parent()<class_Node_method_get_parent>`.
\ **Примечание:** Этот метод не может учитывать :ref:`VisualInstance3D.layers<class_VisualInstance3D_property_layers>`, поэтому даже если этот метод возвращает ``true``, узел может не быть отрисован.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_look_at:
.. rst-class:: classref-method
|void| **look_at**\ (\ target\: :ref:`Vector3<class_Vector3>`, up\: :ref:`Vector3<class_Vector3>` = Vector3(0, 1, 0), use_model_front\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_Node3D_method_look_at>`
Поворачивает узел так, чтобы локальная прямая ось (-Z, :ref:`Vector3.FORWARD<class_Vector3_constant_FORWARD>`) указывала на позицию ``target``. Эта операция вычисляется в глобальном пространстве (относительно мира).
Локальная ось вверх (+Y) указывает как можно ближе к вектору ``up``, оставаясь перпендикулярной локальной прямой оси. Результирующее преобразование ортогонально, и масштаб сохраняется. Неравномерное масштабирование может работать некорректно.
Позиция ``target`` не может совпадать с позицией узла, вектор ``up`` не может быть :ref:`Vector3.ZERO<class_Vector3_constant_ZERO>`. Кроме того, направление от позиции узла к позиции ``target`` не может быть параллельным вектору ``up``, чтобы избежать непреднамеренного вращения вокруг локальной оси Z.
Если ``use_model_front`` равно ``true``, ось +Z (фронт актива) рассматривается как прямая (подразумевается, что +X слева) и указывает на позицию ``target``. По умолчанию ось -Z (камера вперед) рассматривается как передняя (подразумевается, что +X справа).
\ **Примечание:** Этот метод не работает, если узел не находится в дереве сцены. При необходимости используйте вместо этого :ref:`look_at_from_position()<class_Node3D_method_look_at_from_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_look_at_from_position:
.. rst-class:: classref-method
|void| **look_at_from_position**\ (\ position\: :ref:`Vector3<class_Vector3>`, target\: :ref:`Vector3<class_Vector3>`, up\: :ref:`Vector3<class_Vector3>` = Vector3(0, 1, 0), use_model_front\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_Node3D_method_look_at_from_position>`
Перемещает узел в указанное ``position``, затем поворачивает узел так, чтобы он указывал на позицию ``target``, аналогично :ref:`look_at()<class_Node3D_method_look_at>`. Эта операция вычисляется в глобальном пространстве (относительно мира).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_orthonormalize:
.. rst-class:: classref-method
|void| **orthonormalize**\ (\ ) :ref:`🔗<class_Node3D_method_orthonormalize>`
Ортонормализует :ref:`basis<class_Node3D_property_basis>` этого узла. Этот метод устанавливает :ref:`scale<class_Node3D_property_scale>` этого узла на :ref:`Vector3.ONE<class_Vector3_constant_ONE>` (или ее отрицательный эквивалент), но сохраняет :ref:`position<class_Node3D_property_position>` и :ref:`rotation<class_Node3D_property_rotation>`. См. также :ref:`Transform3D.orthonormalized()<class_Transform3D_method_orthonormalized>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_rotate:
.. rst-class:: classref-method
|void| **rotate**\ (\ axis\: :ref:`Vector3<class_Vector3>`, angle\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Node3D_method_rotate>`
Поворачивает :ref:`basis<class_Node3D_property_basis>` этого узла вокруг ``axis`` на заданный ``angle`` в радианах. Эта операция вычисляется в родительском пространстве (относительно родителя) и сохраняет :ref:`position<class_Node3D_property_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_rotate_object_local:
.. rst-class:: classref-method
|void| **rotate_object_local**\ (\ axis\: :ref:`Vector3<class_Vector3>`, angle\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Node3D_method_rotate_object_local>`
Поворачивает :ref:`basis<class_Node3D_property_basis>` этого узла вокруг ``axis`` на заданный ``angle`` в радианах. Эта операция вычисляется в локальном пространстве (относительно этого узла) и сохраняет :ref:`position<class_Node3D_property_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_rotate_x:
.. rst-class:: classref-method
|void| **rotate_x**\ (\ angle\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Node3D_method_rotate_x>`
Поворачивает :ref:`basis<class_Node3D_property_basis>` этого узла вокруг оси X на заданный ``angle`` в радианах. Эта операция вычисляется в родительском пространстве (относительно родителя) и сохраняет :ref:`position<class_Node3D_property_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_rotate_y:
.. rst-class:: classref-method
|void| **rotate_y**\ (\ angle\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Node3D_method_rotate_y>`
Поворачивает :ref:`basis<class_Node3D_property_basis>` этого узла вокруг оси Y на заданный ``angle`` в радианах. Эта операция вычисляется в родительском пространстве (относительно родителя) и сохраняет :ref:`position<class_Node3D_property_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_rotate_z:
.. rst-class:: classref-method
|void| **rotate_z**\ (\ angle\: :ref:`float<class_float>`\ ) :ref:`🔗<class_Node3D_method_rotate_z>`
Поворачивает :ref:`basis<class_Node3D_property_basis>` этого узла вокруг оси Z на заданный ``angle`` в радианах. Эта операция вычисляется в родительском пространстве (относительно родителя) и сохраняет :ref:`position<class_Node3D_property_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_scale_object_local:
.. rst-class:: classref-method
|void| **scale_object_local**\ (\ scale\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Node3D_method_scale_object_local>`
Масштабирует :ref:`basis<class_Node3D_property_basis>` этого узла на заданный фактор ``scale``. Эта операция вычисляется в локальном пространстве (относительно этого узла) и сохраняет :ref:`position<class_Node3D_property_position>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_set_disable_scale:
.. rst-class:: classref-method
|void| **set_disable_scale**\ (\ disable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_Node3D_method_set_disable_scale>`
Если ``true``, :ref:`global_transform<class_Node3D_property_global_transform>` этого узла автоматически ортонормализуется. Это приводит к тому, что этот узел не выглядит искаженным, как если бы его глобальный масштаб был установлен на :ref:`Vector3.ONE<class_Vector3_constant_ONE>` (или его отрицательный аналог). См. также :ref:`is_scale_disabled()<class_Node3D_method_is_scale_disabled>` и :ref:`orthonormalize()<class_Node3D_method_orthonormalize>`.
\ **Примечание:** :ref:`transform<class_Node3D_property_transform>` не затрагивается этой настройкой.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_set_identity:
.. rst-class:: classref-method
|void| **set_identity**\ (\ ) :ref:`🔗<class_Node3D_method_set_identity>`
Устанавливает :ref:`transform<class_Node3D_property_transform>` этого узла в :ref:`Transform3D.IDENTITY<class_Transform3D_constant_IDENTITY>`, что сбрасывает все преобразования в родительском пространстве (:ref:`position<class_Node3D_property_position>`, :ref:`rotation<class_Node3D_property_rotation>` и :ref:`scale<class_Node3D_property_scale>`).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_set_ignore_transform_notification:
.. rst-class:: classref-method
|void| **set_ignore_transform_notification**\ (\ enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_Node3D_method_set_ignore_transform_notification>`
Если ``true``, узел не получит :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>` или :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>`.
Может быть полезно вызвать этот метод при обработке этих уведомлений, чтобы предотвратить бесконечную рекурсию.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_set_notify_local_transform:
.. rst-class:: classref-method
|void| **set_notify_local_transform**\ (\ enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_Node3D_method_set_notify_local_transform>`
Если ``true``, узел будет получать :ref:`NOTIFICATION_LOCAL_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_LOCAL_TRANSFORM_CHANGED>` всякий раз, когда изменяется :ref:`transform<class_Node3D_property_transform>`.
\ **Примечание:** Некоторые 3D-узлы, такие как :ref:`CSGShape3D<class_CSGShape3D>` или :ref:`CollisionShape3D<class_CollisionShape3D>`, автоматически включают это для правильной работы.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_set_notify_transform:
.. rst-class:: classref-method
|void| **set_notify_transform**\ (\ enable\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_Node3D_method_set_notify_transform>`
Если ``true``, узел будет получать :ref:`NOTIFICATION_TRANSFORM_CHANGED<class_Node3D_constant_NOTIFICATION_TRANSFORM_CHANGED>` всякий раз, когда изменяется :ref:`global_transform<class_Node3D_property_global_transform>`.
\ **Примечание:** Большинство 3D-узлов, таких как :ref:`VisualInstance3D<class_VisualInstance3D>` или :ref:`CollisionObject3D<class_CollisionObject3D>`, автоматически включают это для корректной работы.
\ **Примечание:** В редакторе узлы будут распространять это уведомление своим дочерним элементам, если присоединен гизмо (см. :ref:`add_gizmo()<class_Node3D_method_add_gizmo>`).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_set_subgizmo_selection:
.. rst-class:: classref-method
|void| **set_subgizmo_selection**\ (\ gizmo\: :ref:`Node3DGizmo<class_Node3DGizmo>`, id\: :ref:`int<class_int>`, transform\: :ref:`Transform3D<class_Transform3D>`\ ) :ref:`🔗<class_Node3D_method_set_subgizmo_selection>`
Выбирает подэлемент ``gizmo`` с заданным ``id`` и задает его преобразование. Работает только в редакторе.
\ **Примечание:** Объект gizmo обычно является экземпляром :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, но тип аргумента сохраняется общим, чтобы избежать создания зависимости от классов редактора в **Node3D**.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_show:
.. rst-class:: classref-method
|void| **show**\ (\ ) :ref:`🔗<class_Node3D_method_show>`
Позволяет отображать этот узел. Эквивалентно установке :ref:`visible<class_Node3D_property_visible>` в ``true``. Это противоположно :ref:`hide()<class_Node3D_method_hide>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_to_global:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **to_global**\ (\ local_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Node3D_method_to_global>`
Возвращает ``local_point``, преобразованный из локального пространства этого узла в глобальное пространство. Это противоположно :ref:`to_local()<class_Node3D_method_to_local>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_to_local:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **to_local**\ (\ global_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_Node3D_method_to_local>`
Возвращает ``global_point``, преобразованный из глобального пространства в локальное пространство этого узла. Это противоположно :ref:`to_global()<class_Node3D_method_to_global>`.
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_translate:
.. rst-class:: classref-method
|void| **translate**\ (\ offset\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Node3D_method_translate>`
Добавляет заданное смещение ``offset`` к позиции узла в локальном пространстве (относительно этого узла).
\ **Примечание:** Вместо этого предпочтительнее использовать :ref:`translate_object_local()<class_Node3D_method_translate_object_local>`, так как этот метод может быть изменен в будущем выпуске.
\ **Примечание:** Несмотря на соглашение об именовании, эта операция **не** вычисляется в родительском пространстве по соображениям совместимости. Чтобы перевести в родительском пространстве, добавьте ``offset`` к :ref:`position<class_Node3D_property_position>` (``node_3d.position += offset``).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_translate_object_local:
.. rst-class:: classref-method
|void| **translate_object_local**\ (\ offset\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_Node3D_method_translate_object_local>`
Добавляет заданное смещение ``offset`` к положению узла в локальном пространстве (относительно этого узла).
.. rst-class:: classref-item-separator
----
.. _class_Node3D_method_update_gizmos:
.. rst-class:: classref-method
|void| **update_gizmos**\ (\ ) :ref:`🔗<class_Node3D_method_update_gizmos>`
Обновляет все объекты :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, прикрепленные к этому узлу. Работает только в редакторе.
.. |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 (Нет возвращаемого значения.)`