Files
godot-docs-l10n/classes/uk/class_editornode3dgizmoplugin.rst

396 lines
43 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_EditorNode3DGizmoPlugin:
EditorNode3DGizmoPlugin
=======================
**Успадковує:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Клас, який використовується редактором, щоб визначити типи Node3D.
.. rst-class:: classref-introduction-group
Опис
--------
**EditorNode3DGizmoPlugin** дозволяє визначити новий тип Gizmo. Є два основних способи зробити так: розширення **EditorNode3DGizmoPlugin** для простих Gizmos, або створення нового типу **EditorNode3DGizmoPlugin**. Переглянути підручник в документації для отримання більш детальної інформації.
Для використання **EditorNode3DGizmoPlugin**, зареєструйте його за допомогою :ref:`редактораPlugin.add_node_3d_gizmo_plugin()<class_редактораPlugin_method_add_node_3d_gizmo_plugin>`.
.. rst-class:: classref-introduction-group
Посібники
------------------
- :doc:`Node3D gizmo плагіни <../tutorials/plugins/editor/3d_gizmos>`
.. rst-class:: classref-reftable-group
Методи
------------
.. table::
:widths: auto
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_begin_handle_action<class_EditorNode3DGizmoPlugin_private_method__begin_handle_action>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_can_be_hidden<class_EditorNode3DGizmoPlugin_private_method__can_be_hidden>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_commit_handle<class_EditorNode3DGizmoPlugin_private_method__commit_handle>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`, restore\: :ref:`Variant<class_Variant>`, cancel\: :ref:`bool<class_bool>`\ ) |virtual| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_commit_subgizmos<class_EditorNode3DGizmoPlugin_private_method__commit_subgizmos>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, ids\: :ref:`PackedInt32Array<class_PackedInt32Array>`, restores\: :ref:`Array<class_Array>`\[:ref:`Transform3D<class_Transform3D>`\], cancel\: :ref:`bool<class_bool>`\ ) |virtual| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` | :ref:`_create_gizmo<class_EditorNode3DGizmoPlugin_private_method__create_gizmo>`\ (\ for_node_3d\: :ref:`Node3D<class_Node3D>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`_get_gizmo_name<class_EditorNode3DGizmoPlugin_private_method__get_gizmo_name>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`_get_handle_name<class_EditorNode3DGizmoPlugin_private_method__get_handle_name>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`_get_handle_value<class_EditorNode3DGizmoPlugin_private_method__get_handle_value>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_get_priority<class_EditorNode3DGizmoPlugin_private_method__get_priority>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Transform3D<class_Transform3D>` | :ref:`_get_subgizmo_transform<class_EditorNode3DGizmoPlugin_private_method__get_subgizmo_transform>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, subgizmo_id\: :ref:`int<class_int>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_has_gizmo<class_EditorNode3DGizmoPlugin_private_method__has_gizmo>`\ (\ for_node_3d\: :ref:`Node3D<class_Node3D>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_is_handle_highlighted<class_EditorNode3DGizmoPlugin_private_method__is_handle_highlighted>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_is_selectable_when_hidden<class_EditorNode3DGizmoPlugin_private_method__is_selectable_when_hidden>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_redraw<class_EditorNode3DGizmoPlugin_private_method__redraw>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`\ ) |virtual| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_handle<class_EditorNode3DGizmoPlugin_private_method__set_handle>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`, camera\: :ref:`Camera3D<class_Camera3D>`, screen_pos\: :ref:`Vector2<class_Vector2>`\ ) |virtual| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_subgizmo_transform<class_EditorNode3DGizmoPlugin_private_method__set_subgizmo_transform>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, subgizmo_id\: :ref:`int<class_int>`, transform\: :ref:`Transform3D<class_Transform3D>`\ ) |virtual| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`_subgizmos_intersect_frustum<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_frustum>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, camera\: :ref:`Camera3D<class_Camera3D>`, frustum_planes\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\]\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_subgizmos_intersect_ray<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_ray>`\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, camera\: :ref:`Camera3D<class_Camera3D>`, screen_pos\: :ref:`Vector2<class_Vector2>`\ ) |virtual| |const| |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_material<class_EditorNode3DGizmoPlugin_method_add_material>`\ (\ name\: :ref:`String<class_String>`, material\: :ref:`StandardMaterial3D<class_StandardMaterial3D>`\ ) |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`create_handle_material<class_EditorNode3DGizmoPlugin_method_create_handle_material>`\ (\ name\: :ref:`String<class_String>`, billboard\: :ref:`bool<class_bool>` = false, texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`create_icon_material<class_EditorNode3DGizmoPlugin_method_create_icon_material>`\ (\ name\: :ref:`String<class_String>`, texture\: :ref:`Texture2D<class_Texture2D>`, on_top\: :ref:`bool<class_bool>` = false, color\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`create_material<class_EditorNode3DGizmoPlugin_method_create_material>`\ (\ name\: :ref:`String<class_String>`, color\: :ref:`Color<class_Color>`, billboard\: :ref:`bool<class_bool>` = false, on_top\: :ref:`bool<class_bool>` = false, use_vertex_color\: :ref:`bool<class_bool>` = false\ ) |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`StandardMaterial3D<class_StandardMaterial3D>` | :ref:`get_material<class_EditorNode3DGizmoPlugin_method_get_material>`\ (\ name\: :ref:`String<class_String>`, gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` = null\ ) |
+-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи методів
--------------------------
.. _class_EditorNode3DGizmoPlugin_private_method__begin_handle_action:
.. rst-class:: classref-method
|void| **_begin_handle_action**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__begin_handle_action>`
.. container:: contribute
There is currently no description for this method. Please help us by `contributing one <https://contributing.godotengine.org/en/latest/documentation/class_reference.html>`__!
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__can_be_hidden:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_can_be_hidden**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__can_be_hidden>`
Зазначте цей метод, щоб визначити, чи можна використовувати gizmos. ``true``, якщо не перейде.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__commit_handle:
.. rst-class:: classref-method
|void| **_commit_handle**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`, restore\: :ref:`Variant<class_Variant>`, cancel\: :ref:`bool<class_bool>`\ ) |virtual| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__commit_handle>`
Надіславши цей метод, щоб зробити ручку редаговано (ручки повинні були попередньо додані :ref:`EditorNode3DGizmo.add_handles()<class_EditorNode3DGizmo_method_add_handles>` під час :ref:`_redraw()<class_EditorNode3DGizmoPlugin_private_method__redraw>`). Це, як правило, означає створення :ref:`UndoRedo<class_UndoRedo>` дії для зміни, використовуючи значення поточної ручки як "до" і ``restore`` аргумент як "ундо".
Якщо аргумент ``скасувати`` ``true``, значення ``edit`` повинна бути безпосередньо встановлена, без будь-яких :ref:`UndoRedo<class_UndoRedo>` дії.
\ ``restore`` аргумент ``true`` при виконанні ручок вторинна (див. :ref:`EditorNode3DGizmo.add_handles()<class_EditorNode3DGizmo_method_add_handles>` для отримання додаткової інформації).
Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__commit_subgizmos:
.. rst-class:: classref-method
|void| **_commit_subgizmos**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, ids\: :ref:`PackedInt32Array<class_PackedInt32Array>`, restores\: :ref:`Array<class_Array>`\[:ref:`Transform3D<class_Transform3D>`\], cancel\: :ref:`bool<class_bool>`\ ) |virtual| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__commit_subgizmos>`
Зазначте цей метод, щоб зробити групу субгізмос, які редаговані (див. :ref:`_subgizmos_intersect_ray()<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_ray>` і :ref:`_subgizmos_intersect_frustum()<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_frustum>`). Це, як правило, означає створення :ref:`UndoRedo<class_UndoRedo>` дії для зміни, використовуючи поточні перетворення як "до" і ``restores`` трансформується як "ундо".
Якщо аргумент ``cancel`` ``true``, ``restores`` трансформатори повинні бути безпосередньо встановленими, без будь-яких :ref:`UndoRedo<class_UndoRedo>` дії. Як і з усіма методами підгізмо, трансформуються в локальну космічну повагу Node3D. Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__create_gizmo:
.. rst-class:: classref-method
:ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` **_create_gizmo**\ (\ for_node_3d\: :ref:`Node3D<class_Node3D>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__create_gizmo>`
Перевизначте цей метод, щоб повернути спеціальний :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` для 3D-вузлів за вашим вибором, повернути ``null`` для решти вузлів. Дивіться також :ref:`_has_gizmo()<class_EditorNode3DGizmoPlugin_private_method__has_gizmo>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__get_gizmo_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **_get_gizmo_name**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__get_gizmo_name>`
На відміну від цього способу, щоб забезпечити ім'я, яке з'явиться в меню видимості Gizmo.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__get_handle_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **_get_handle_name**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__get_handle_name>`
Надіславши цей метод для забезпечення імен ручок gizmo. ``secondary`` аргумент ``true``, коли потрібна ручка вторинна (див. :ref:`редакторNode3DGizmo.add_handles()<class_редакторNode3DGizmo_method_add_handles>` для отримання додаткової інформації). Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__get_handle_value:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **_get_handle_value**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__get_handle_value>`
Надіславши цей метод для повернення поточного значення ручки. Ця вартість буде запитана при старті редагування та використовується як ``restore`` аргумент :ref:`_commit_handle()<class_EditorNode3DGizmoPlugin_private_method__commit_handle>`.
\ ``secondary`` аргумент ``true``, коли потрібна ручка вторинна (див. :ref:`EditorNode3DGizmo.add_handles()<class_EditorNode3DGizmo_method_add_handles>` для отримання додаткової інформації).
Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__get_priority:
.. rst-class:: classref-method
:ref:`int<class_int>` **_get_priority**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__get_priority>`
Зазначте цей метод, щоб встановити пріоритет Gizmo. Gizmos з вищим пріоритетом має прецедентність при обробці вводів, таких як ручка або підгізмос вибір.
Всі вбудовані редактори Gizmos повертає пріоритет ``-1``. Якщо не перейдиден, цей метод повернеться ``0``, що означає користувацькі гізмос автоматично отримає більший пріоритет, ніж вбудовані гізмос.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__get_subgizmo_transform:
.. rst-class:: classref-method
:ref:`Transform3D<class_Transform3D>` **_get_subgizmo_transform**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, subgizmo_id\: :ref:`int<class_int>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__get_subgizmo_transform>`
На відміну від цього способу повернення поточного перетворення підгізмо. Як з усіма методами підгізмо, трансформатор повинен бути в місцевому просторі по відношенню до Node3D. Ця трансформація буде запитана при старті редагування та використання в ``restore`` аргумент в ``метод_commit_subgizmos``. Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__has_gizmo:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_has_gizmo**\ (\ for_node_3d\: :ref:`Node3D<class_Node3D>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__has_gizmo>`
На відміну від цього методу, щоб визначити, які вузли Node3D мають gizmo з цього плагіна. Колись вузол :ref:`Node3D<class_Node3D>` додається до сцени, цей метод називається, якщо він повертає ``true`` вершина отримує загальний :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` і додається до цього списку плагінів активного gizmos.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__is_handle_highlighted:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_is_handle_highlighted**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__is_handle_highlighted>`
Перевизнайте цей метод для повернення ``true``, коли будь-яка ручка повинна бути виділена в редакторі. ``secondary`` аргумент ``true``, коли потрібна ручка вторинна (див. :ref:`редакторNode3DGizmo.add_handles()<class_редакторNode3DGizmo_method_add_handles>` для отримання додаткової інформації). Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__is_selectable_when_hidden:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_is_selectable_when_hidden**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__is_selectable_when_hidden>`
На відміну від цього методу, щоб визначити, чи слід вибрати Node3D з цим гізмо, навіть якщо гизмо приховано.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__redraw:
.. rst-class:: classref-method
|void| **_redraw**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`\ ) |virtual| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__redraw>`
На відміну від цього способу, щоб додати всі мікроелементи, коли запитується оновлення gizmo. Зазвичай, щоб викликати :ref:`EditorNode3DGizmo.clear()<class_EditorNode3DGizmo_method_clear>` на початку цього способу, а потім додати візуальні елементи в залежності від властивостей вузла.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__set_handle:
.. rst-class:: classref-method
|void| **_set_handle**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, handle_id\: :ref:`int<class_int>`, secondary\: :ref:`bool<class_bool>`, camera\: :ref:`Camera3D<class_Camera3D>`, screen_pos\: :ref:`Vector2<class_Vector2>`\ ) |virtual| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__set_handle>`
Зазначте цей метод, щоб оновити властивості вершини, коли користувач перетягує рукоятку Gizmo (попередньо додано з :ref:`EditorNode3DGizmo.add_handles()<class_EditorNode3DGizmo_method_add_handles>`). Надана ``screen_pos`` є позиція мишки в координатах екрана і ``camera`` може бути використана для перетворення його в промені.
\ ``secondary`` аргумент ``true``, коли редагована ручка вторинна (див. :ref:`редакторNode3DGizmo.add_handles()<class_редакторNode3DGizmo_method_add_handles>` для отримання додаткової інформації).
Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__set_subgizmo_transform:
.. rst-class:: classref-method
|void| **_set_subgizmo_transform**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, subgizmo_id\: :ref:`int<class_int>`, transform\: :ref:`Transform3D<class_Transform3D>`\ ) |virtual| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__set_subgizmo_transform>`
На відміну від цього способу оновлення властивостей вузлів під час редагування субгізмо (див. :ref:`_subgizmos_intersect_ray()<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_ray>` і :ref:`_subgizmos_intersect_frustum()<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_frustum>`). У локальній координаційній системі Node3D наведено в локальну координацію Node3D. Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_frustum:
.. rst-class:: classref-method
:ref:`PackedInt32Array<class_PackedInt32Array>` **_subgizmos_intersect_frustum**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, camera\: :ref:`Camera3D<class_Camera3D>`, frustum_planes\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\]\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_frustum>`
Надіславши цей метод, щоб дозволити вибрати підгізмос за допомогою миші перетягування коробки. З огляду на ``camera`` і ``frustum_planes``, цей метод повинен повернути, які subgizmos містяться в межах frustums. ``frustum_planes`` аргумент складається з масиву з усіма :ref:`Plane<class_Plane>`, які роблять вибір frustum. Повернуте значення має містити список унікальних ідентифікаторів субгізмо, ці ідентифікатори можуть мати будь-яке негативне значення і буде використовуватися в інших віртуальних методах, таких як :ref:`_subgizmo_transform()<class_EditorNode3DGizmoPlugin_private_method__subgizmo_transform>` або :ref:`_commit_subgizmos()<class_EditorNode3DGizmoPlugin_private_method__commit_subgizmos>`. Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_ray:
.. rst-class:: classref-method
:ref:`int<class_int>` **_subgizmos_intersect_ray**\ (\ gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>`, camera\: :ref:`Camera3D<class_Camera3D>`, screen_pos\: :ref:`Vector2<class_Vector2>`\ ) |virtual| |const| :ref:`🔗<class_EditorNode3DGizmoPlugin_private_method__subgizmos_intersect_ray>`
Надіславши цей метод, щоб дозволити вибрати підгізмос за допомогою кліків миші. З огляду на ``camera`` і ``screen_pos`` в координатах екрана, цей метод повинен повернути який subgizmo слід вибрати. Повернуте значення має бути унікальним ідентифікатором субгізмо, який може мати будь-яке негативне значення і буде використовуватися в інших віртуальних методах, таких як :ref:`_subgizmo_transform()<class_EditorNode3DGizmoPlugin_private_method__subgizmo_transform>` або :ref:`_commit_subgizmos()<class_EditorNode3DGizmoPlugin_private_method__commit_subgizmos>`. Зателефоновано для активного Gizmos цього плагіна.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_method_add_material:
.. rst-class:: classref-method
|void| **add_material**\ (\ name\: :ref:`String<class_String>`, material\: :ref:`StandardMaterial3D<class_StandardMaterial3D>`\ ) :ref:`🔗<class_EditorNode3DGizmoPlugin_method_add_material>`
Додати новий матеріал до внутрішнього списку матеріалів для плагіна. Далі можна отримати :ref:`get_material()<class_EditorNode3DGizmoPlugin_method_get_material>`. Не варто переносити.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_method_create_handle_material:
.. rst-class:: classref-method
|void| **create_handle_material**\ (\ name\: :ref:`String<class_String>`, billboard\: :ref:`bool<class_bool>` = false, texture\: :ref:`Texture2D<class_Texture2D>` = null\ ) :ref:`🔗<class_EditorNode3DGizmoPlugin_method_create_handle_material>`
Створює ручний матеріал з його варіантами (вибірний і/або редагований) і додає їх до внутрішнього переліку матеріалів. Далі можна отримати :ref:`get_material()<class_EditorNode3DGizmoPlugin_method_get_material>` і використовувати в :ref:`EditorNode3DGizmo.add_handles()<class_EditorNode3DGizmo_method_add_handles>`. Не варто переносити.
Ви можете додатково надати фактуру замість іконки за замовчуванням.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_method_create_icon_material:
.. rst-class:: classref-method
|void| **create_icon_material**\ (\ name\: :ref:`String<class_String>`, texture\: :ref:`Texture2D<class_Texture2D>`, on_top\: :ref:`bool<class_bool>` = false, color\: :ref:`Color<class_Color>` = Color(1, 1, 1, 1)\ ) :ref:`🔗<class_EditorNode3DGizmoPlugin_method_create_icon_material>`
Створює іконковий матеріал з його варіантами (вибірний і/або редагований) і додає їх до внутрішнього переліку матеріалів. Далі можна отримати :ref:`get_material()<class_EditorNode3DGizmoPlugin_method_get_material>` і використовувати в :ref:`EditorNode3DGizmo.add_unscaled_billboard()<class_EditorNode3DGizmo_method_add_unscaled_billboard>`. Не варто переносити.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_method_create_material:
.. rst-class:: classref-method
|void| **create_material**\ (\ name\: :ref:`String<class_String>`, color\: :ref:`Color<class_Color>`, billboard\: :ref:`bool<class_bool>` = false, on_top\: :ref:`bool<class_bool>` = false, use_vertex_color\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_EditorNode3DGizmoPlugin_method_create_material>`
Створює неочищений матеріал з його варіантами (вибірний і/або редагований) і додає їх до внутрішнього переліку матеріалів. Ви можете отримати доступ до :ref:`get_material()<class_EditorNode3DGizmoPlugin_method_get_material>` і використовувати в :ref:`EditorNode3DGizmo.add_mesh()<class_EditorNode3DGizmo_method_add_mesh>` і :ref:`EditorNode3DGizmo.add_lines()<class_EditorNode3DGizmo_method_add_lines>`. Не варто переносити.
.. rst-class:: classref-item-separator
----
.. _class_EditorNode3DGizmoPlugin_method_get_material:
.. rst-class:: classref-method
:ref:`StandardMaterial3D<class_StandardMaterial3D>` **get_material**\ (\ name\: :ref:`String<class_String>`, gizmo\: :ref:`EditorNode3DGizmo<class_EditorNode3DGizmo>` = null\ ) :ref:`🔗<class_EditorNode3DGizmoPlugin_method_get_material>`
Отримує матеріал з внутрішнього переліку матеріалів. Якщо надана :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 (Значення не повертається.)`