Files
godot-docs-l10n/classes/ru/class_editorplugin.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

1816 lines
126 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_EditorPlugin:
EditorPlugin
============
**Наследует:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
**Наследуется от:** :ref:`GridMapEditorPlugin<class_GridMapEditorPlugin>`
Используется редактором для расширения его функциональности.
.. rst-class:: classref-introduction-group
Описание
----------------
Плагины используются редактором для расширения функциональности. Наиболее распространенными типами плагинов являются те, которые редактируют заданный узел или тип ресурса, импортируют плагины и экспортируют плагины. См. также :ref:`EditorScript<class_EditorScript>`, чтобы добавить функции в редактор.
\ **Примечание:** Некоторые имена в этом классе содержат «left» или «right» (например, :ref:`DOCK_SLOT_LEFT_UL<class_EditorPlugin_constant_DOCK_SLOT_LEFT_UL>`). Эти API предполагают расположение слева направо и будут обратными при использовании расположения справа налево. Эти имена сохранены из соображений совместимости.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- :doc:`Индекс документации плагинов редактора <../tutorials/plugins/editor/index>`
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_apply_changes<class_EditorPlugin_private_method__apply_changes>`\ (\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_build<class_EditorPlugin_private_method__build>`\ (\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_clear<class_EditorPlugin_private_method__clear>`\ (\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_disable_plugin<class_EditorPlugin_private_method__disable_plugin>`\ (\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_edit<class_EditorPlugin_private_method__edit>`\ (\ object\: :ref:`Object<class_Object>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_enable_plugin<class_EditorPlugin_private_method__enable_plugin>`\ (\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_forward_3d_draw_over_viewport<class_EditorPlugin_private_method__forward_3d_draw_over_viewport>`\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_forward_3d_force_draw_over_viewport<class_EditorPlugin_private_method__forward_3d_force_draw_over_viewport>`\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`_forward_3d_gui_input<class_EditorPlugin_private_method__forward_3d_gui_input>`\ (\ viewport_camera\: :ref:`Camera3D<class_Camera3D>`, event\: :ref:`InputEvent<class_InputEvent>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_forward_canvas_draw_over_viewport<class_EditorPlugin_private_method__forward_canvas_draw_over_viewport>`\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_forward_canvas_force_draw_over_viewport<class_EditorPlugin_private_method__forward_canvas_force_draw_over_viewport>`\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_forward_canvas_gui_input<class_EditorPlugin_private_method__forward_canvas_gui_input>`\ (\ event\: :ref:`InputEvent<class_InputEvent>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_breakpoints<class_EditorPlugin_private_method__get_breakpoints>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`_get_plugin_icon<class_EditorPlugin_private_method__get_plugin_icon>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`_get_plugin_name<class_EditorPlugin_private_method__get_plugin_name>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dictionary<class_Dictionary>` | :ref:`_get_state<class_EditorPlugin_private_method__get_state>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`_get_unsaved_status<class_EditorPlugin_private_method__get_unsaved_status>`\ (\ for_scene\: :ref:`String<class_String>`\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_get_window_layout<class_EditorPlugin_private_method__get_window_layout>`\ (\ configuration\: :ref:`ConfigFile<class_ConfigFile>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_handles<class_EditorPlugin_private_method__handles>`\ (\ object\: :ref:`Object<class_Object>`\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`_has_main_screen<class_EditorPlugin_private_method__has_main_screen>`\ (\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_make_visible<class_EditorPlugin_private_method__make_visible>`\ (\ visible\: :ref:`bool<class_bool>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_run_scene<class_EditorPlugin_private_method__run_scene>`\ (\ scene\: :ref:`String<class_String>`, args\: :ref:`PackedStringArray<class_PackedStringArray>`\ ) |virtual| |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_save_external_data<class_EditorPlugin_private_method__save_external_data>`\ (\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_state<class_EditorPlugin_private_method__set_state>`\ (\ state\: :ref:`Dictionary<class_Dictionary>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_set_window_layout<class_EditorPlugin_private_method__set_window_layout>`\ (\ configuration\: :ref:`ConfigFile<class_ConfigFile>`\ ) |virtual| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_autoload_singleton<class_EditorPlugin_method_add_autoload_singleton>`\ (\ name\: :ref:`String<class_String>`, path\: :ref:`String<class_String>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_context_menu_plugin<class_EditorPlugin_method_add_context_menu_plugin>`\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Button<class_Button>` | :ref:`add_control_to_bottom_panel<class_EditorPlugin_method_add_control_to_bottom_panel>`\ (\ control\: :ref:`Control<class_Control>`, title\: :ref:`String<class_String>`, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_control_to_container<class_EditorPlugin_method_add_control_to_container>`\ (\ container\: :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>`, control\: :ref:`Control<class_Control>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_control_to_dock<class_EditorPlugin_method_add_control_to_dock>`\ (\ slot\: :ref:`DockSlot<enum_EditorPlugin_DockSlot>`, control\: :ref:`Control<class_Control>`, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_custom_type<class_EditorPlugin_method_add_custom_type>`\ (\ type\: :ref:`String<class_String>`, base\: :ref:`String<class_String>`, script\: :ref:`Script<class_Script>`, icon\: :ref:`Texture2D<class_Texture2D>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_debugger_plugin<class_EditorPlugin_method_add_debugger_plugin>`\ (\ script\: :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_dock<class_EditorPlugin_method_add_dock>`\ (\ dock\: :ref:`EditorDock<class_EditorDock>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_export_platform<class_EditorPlugin_method_add_export_platform>`\ (\ platform\: :ref:`EditorExportPlatform<class_EditorExportPlatform>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_export_plugin<class_EditorPlugin_method_add_export_plugin>`\ (\ plugin\: :ref:`EditorExportPlugin<class_EditorExportPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_import_plugin<class_EditorPlugin_method_add_import_plugin>`\ (\ importer\: :ref:`EditorImportPlugin<class_EditorImportPlugin>`, first_priority\: :ref:`bool<class_bool>` = false\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_inspector_plugin<class_EditorPlugin_method_add_inspector_plugin>`\ (\ plugin\: :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_node_3d_gizmo_plugin<class_EditorPlugin_method_add_node_3d_gizmo_plugin>`\ (\ plugin\: :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_resource_conversion_plugin<class_EditorPlugin_method_add_resource_conversion_plugin>`\ (\ plugin\: :ref:`EditorResourceConversionPlugin<class_EditorResourceConversionPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_scene_format_importer_plugin<class_EditorPlugin_method_add_scene_format_importer_plugin>`\ (\ scene_format_importer\: :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>`, first_priority\: :ref:`bool<class_bool>` = false\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_scene_post_import_plugin<class_EditorPlugin_method_add_scene_post_import_plugin>`\ (\ scene_import_plugin\: :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`, first_priority\: :ref:`bool<class_bool>` = false\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_tool_menu_item<class_EditorPlugin_method_add_tool_menu_item>`\ (\ name\: :ref:`String<class_String>`, callable\: :ref:`Callable<class_Callable>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_tool_submenu_item<class_EditorPlugin_method_add_tool_submenu_item>`\ (\ name\: :ref:`String<class_String>`, submenu\: :ref:`PopupMenu<class_PopupMenu>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_translation_parser_plugin<class_EditorPlugin_method_add_translation_parser_plugin>`\ (\ parser\: :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_undo_redo_inspector_hook_callback<class_EditorPlugin_method_add_undo_redo_inspector_hook_callback>`\ (\ callable\: :ref:`Callable<class_Callable>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`EditorInterface<class_EditorInterface>` | :ref:`get_editor_interface<class_EditorPlugin_method_get_editor_interface>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PopupMenu<class_PopupMenu>` | :ref:`get_export_as_menu<class_EditorPlugin_method_get_export_as_menu>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_plugin_version<class_EditorPlugin_method_get_plugin_version>`\ (\ ) |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ScriptCreateDialog<class_ScriptCreateDialog>` | :ref:`get_script_create_dialog<class_EditorPlugin_method_get_script_create_dialog>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`EditorUndoRedoManager<class_EditorUndoRedoManager>` | :ref:`get_undo_redo<class_EditorPlugin_method_get_undo_redo>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`hide_bottom_panel<class_EditorPlugin_method_hide_bottom_panel>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`make_bottom_panel_item_visible<class_EditorPlugin_method_make_bottom_panel_item_visible>`\ (\ item\: :ref:`Control<class_Control>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`queue_save_layout<class_EditorPlugin_method_queue_save_layout>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_autoload_singleton<class_EditorPlugin_method_remove_autoload_singleton>`\ (\ name\: :ref:`String<class_String>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_context_menu_plugin<class_EditorPlugin_method_remove_context_menu_plugin>`\ (\ plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_control_from_bottom_panel<class_EditorPlugin_method_remove_control_from_bottom_panel>`\ (\ control\: :ref:`Control<class_Control>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_control_from_container<class_EditorPlugin_method_remove_control_from_container>`\ (\ container\: :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>`, control\: :ref:`Control<class_Control>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_control_from_docks<class_EditorPlugin_method_remove_control_from_docks>`\ (\ control\: :ref:`Control<class_Control>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_custom_type<class_EditorPlugin_method_remove_custom_type>`\ (\ type\: :ref:`String<class_String>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_debugger_plugin<class_EditorPlugin_method_remove_debugger_plugin>`\ (\ script\: :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_dock<class_EditorPlugin_method_remove_dock>`\ (\ dock\: :ref:`EditorDock<class_EditorDock>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_export_platform<class_EditorPlugin_method_remove_export_platform>`\ (\ platform\: :ref:`EditorExportPlatform<class_EditorExportPlatform>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_export_plugin<class_EditorPlugin_method_remove_export_plugin>`\ (\ plugin\: :ref:`EditorExportPlugin<class_EditorExportPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_import_plugin<class_EditorPlugin_method_remove_import_plugin>`\ (\ importer\: :ref:`EditorImportPlugin<class_EditorImportPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_inspector_plugin<class_EditorPlugin_method_remove_inspector_plugin>`\ (\ plugin\: :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_node_3d_gizmo_plugin<class_EditorPlugin_method_remove_node_3d_gizmo_plugin>`\ (\ plugin\: :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_resource_conversion_plugin<class_EditorPlugin_method_remove_resource_conversion_plugin>`\ (\ plugin\: :ref:`EditorResourceConversionPlugin<class_EditorResourceConversionPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_scene_format_importer_plugin<class_EditorPlugin_method_remove_scene_format_importer_plugin>`\ (\ scene_format_importer\: :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_scene_post_import_plugin<class_EditorPlugin_method_remove_scene_post_import_plugin>`\ (\ scene_import_plugin\: :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_tool_menu_item<class_EditorPlugin_method_remove_tool_menu_item>`\ (\ name\: :ref:`String<class_String>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_translation_parser_plugin<class_EditorPlugin_method_remove_translation_parser_plugin>`\ (\ parser\: :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_undo_redo_inspector_hook_callback<class_EditorPlugin_method_remove_undo_redo_inspector_hook_callback>`\ (\ callable\: :ref:`Callable<class_Callable>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_dock_tab_icon<class_EditorPlugin_method_set_dock_tab_icon>`\ (\ control\: :ref:`Control<class_Control>`, icon\: :ref:`Texture2D<class_Texture2D>`\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_force_draw_over_forwarding_enabled<class_EditorPlugin_method_set_force_draw_over_forwarding_enabled>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_input_event_forwarding_always_enabled<class_EditorPlugin_method_set_input_event_forwarding_always_enabled>`\ (\ ) |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`update_overlays<class_EditorPlugin_method_update_overlays>`\ (\ ) |const| |
+-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Сигналы
--------------
.. _class_EditorPlugin_signal_main_screen_changed:
.. rst-class:: classref-signal
**main_screen_changed**\ (\ screen_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_signal_main_screen_changed>`
Вызывается, когда пользователь меняет рабочее пространство (**2D**, **3D**, **Script**, **Game**, **AssetLib**). Также работает с пользовательскими экранами, определенными плагинами.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_signal_project_settings_changed:
.. rst-class:: classref-signal
**project_settings_changed**\ (\ ) :ref:`🔗<class_EditorPlugin_signal_project_settings_changed>`
**Устарело:** Use :ref:`ProjectSettings.settings_changed<class_ProjectSettings_signal_settings_changed>` instead.
Генерируется при изменении каких-либо настроек проекта.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_signal_resource_saved:
.. rst-class:: classref-signal
**resource_saved**\ (\ resource\: :ref:`Resource<class_Resource>`\ ) :ref:`🔗<class_EditorPlugin_signal_resource_saved>`
Выдается, когда заданный ``resource`` был сохранен на диске. См. также :ref:`scene_saved<class_EditorPlugin_signal_scene_saved>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_signal_scene_changed:
.. rst-class:: classref-signal
**scene_changed**\ (\ scene_root\: :ref:`Node<class_Node>`\ ) :ref:`🔗<class_EditorPlugin_signal_scene_changed>`
Выдается при изменении сцены в редакторе. Аргумент вернет корневой узел сцены, которая только что стала активной. Если эта сцена новая и пустая, аргумент будет ``null``.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_signal_scene_closed:
.. rst-class:: classref-signal
**scene_closed**\ (\ filepath\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_signal_scene_closed>`
Вызывается, когда пользователь закрывает сцену. Аргумент — путь к файлу закрытой сцены.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_signal_scene_saved:
.. rst-class:: classref-signal
**scene_saved**\ (\ filepath\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_signal_scene_saved>`
Выдается при сохранении сцены на диске. Аргумент — путь к файлу сохраненной сцены. См. также :ref:`resource_saved<class_EditorPlugin_signal_resource_saved>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Перечисления
------------------------
.. _enum_EditorPlugin_CustomControlContainer:
.. rst-class:: classref-enumeration
enum **CustomControlContainer**: :ref:`🔗<enum_EditorPlugin_CustomControlContainer>`
.. _class_EditorPlugin_constant_CONTAINER_TOOLBAR:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_TOOLBAR** = ``0``
Основная панель инструментов редактора, рядом с кнопками воспроизведения.
.. _class_EditorPlugin_constant_CONTAINER_SPATIAL_EDITOR_MENU:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_SPATIAL_EDITOR_MENU** = ``1``
Панель инструментов, которая появляется при активном 3D-редакторе.
.. _class_EditorPlugin_constant_CONTAINER_SPATIAL_EDITOR_SIDE_LEFT:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_SPATIAL_EDITOR_SIDE_LEFT** = ``2``
Левая боковая панель 3D-редактора.
.. _class_EditorPlugin_constant_CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT** = ``3``
Правая боковая панель 3D-редактора.
.. _class_EditorPlugin_constant_CONTAINER_SPATIAL_EDITOR_BOTTOM:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_SPATIAL_EDITOR_BOTTOM** = ``4``
Нижняя панель 3D-редактора.
.. _class_EditorPlugin_constant_CONTAINER_CANVAS_EDITOR_MENU:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_CANVAS_EDITOR_MENU** = ``5``
Панель инструментов, которая появляется при активном 2D-редакторе.
.. _class_EditorPlugin_constant_CONTAINER_CANVAS_EDITOR_SIDE_LEFT:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_CANVAS_EDITOR_SIDE_LEFT** = ``6``
Левая боковая панель 2D-редактора.
.. _class_EditorPlugin_constant_CONTAINER_CANVAS_EDITOR_SIDE_RIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_CANVAS_EDITOR_SIDE_RIGHT** = ``7``
Правая боковая панель 2D-редактора.
.. _class_EditorPlugin_constant_CONTAINER_CANVAS_EDITOR_BOTTOM:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_CANVAS_EDITOR_BOTTOM** = ``8``
Нижняя панель 2D-редактора.
.. _class_EditorPlugin_constant_CONTAINER_INSPECTOR_BOTTOM:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_INSPECTOR_BOTTOM** = ``9``
Нижняя часть инспектора.
.. _class_EditorPlugin_constant_CONTAINER_PROJECT_SETTING_TAB_LEFT:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_PROJECT_SETTING_TAB_LEFT** = ``10``
Вкладка диалогового окна «Параметры проекта», слева от других вкладок.
.. _class_EditorPlugin_constant_CONTAINER_PROJECT_SETTING_TAB_RIGHT:
.. rst-class:: classref-enumeration-constant
:ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>` **CONTAINER_PROJECT_SETTING_TAB_RIGHT** = ``11``
Вкладка диалогового окна «Параметры проекта», справа от других вкладок.
.. rst-class:: classref-item-separator
----
.. _enum_EditorPlugin_DockSlot:
.. rst-class:: classref-enumeration
enum **DockSlot**: :ref:`🔗<enum_EditorPlugin_DockSlot>`
.. _class_EditorPlugin_constant_DOCK_SLOT_NONE:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_NONE** = ``-1``
The dock is closed.
.. _class_EditorPlugin_constant_DOCK_SLOT_LEFT_UL:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_LEFT_UL** = ``0``
Слот для док-станции, левая сторона, вверху слева (в макете по умолчанию пуст).
.. _class_EditorPlugin_constant_DOCK_SLOT_LEFT_BL:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_LEFT_BL** = ``1``
Слот для док-станции, левая сторона, внизу слева (в макете по умолчанию пуст).
.. _class_EditorPlugin_constant_DOCK_SLOT_LEFT_UR:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_LEFT_UR** = ``2``
Слот док-станции, левая сторона, вверху справа (в макете по умолчанию включены док-станции «Сцена» и «Импорт»).
.. _class_EditorPlugin_constant_DOCK_SLOT_LEFT_BR:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_LEFT_BR** = ``3``
Слот для док-станции, слева, снизу справа (в макете по умолчанию включен док-станция для файловой системы).
.. _class_EditorPlugin_constant_DOCK_SLOT_RIGHT_UL:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_RIGHT_UL** = ``4``
Слот для док-станции, правая сторона, верхний левый угол (в макете по умолчанию включены доки «Инспектор», «Узлы» и «История»).
.. _class_EditorPlugin_constant_DOCK_SLOT_RIGHT_BL:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_RIGHT_BL** = ``5``
Слот для док-станции, правая сторона, левый нижний угол (в макете по умолчанию пуст).
.. _class_EditorPlugin_constant_DOCK_SLOT_RIGHT_UR:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_RIGHT_UR** = ``6``
Слот для док-станции, правая сторона, вверху справа (пустой в макете по умолчанию).
.. _class_EditorPlugin_constant_DOCK_SLOT_RIGHT_BR:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_RIGHT_BR** = ``7``
Слот для док-станции, справа, внизу справа (в макете по умолчанию пуст).
.. _class_EditorPlugin_constant_DOCK_SLOT_BOTTOM:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_BOTTOM** = ``8``
Bottom panel.
.. _class_EditorPlugin_constant_DOCK_SLOT_MAX:
.. rst-class:: classref-enumeration-constant
:ref:`DockSlot<enum_EditorPlugin_DockSlot>` **DOCK_SLOT_MAX** = ``9``
Представляет размер перечисления :ref:`DockSlot<enum_EditorPlugin_DockSlot>`.
.. rst-class:: classref-item-separator
----
.. _enum_EditorPlugin_AfterGUIInput:
.. rst-class:: classref-enumeration
enum **AfterGUIInput**: :ref:`🔗<enum_EditorPlugin_AfterGUIInput>`
.. _class_EditorPlugin_constant_AFTER_GUI_INPUT_PASS:
.. rst-class:: classref-enumeration-constant
:ref:`AfterGUIInput<enum_EditorPlugin_AfterGUIInput>` **AFTER_GUI_INPUT_PASS** = ``0``
Пересылает :ref:`InputEvent<class_InputEvent>` другим EditorPlugins.
.. _class_EditorPlugin_constant_AFTER_GUI_INPUT_STOP:
.. rst-class:: classref-enumeration-constant
:ref:`AfterGUIInput<enum_EditorPlugin_AfterGUIInput>` **AFTER_GUI_INPUT_STOP** = ``1``
Предотвращает доступ :ref:`InputEvent<class_InputEvent>` к другим классам редактора.
.. _class_EditorPlugin_constant_AFTER_GUI_INPUT_CUSTOM:
.. rst-class:: classref-enumeration-constant
:ref:`AfterGUIInput<enum_EditorPlugin_AfterGUIInput>` **AFTER_GUI_INPUT_CUSTOM** = ``2``
Передайте :ref:`InputEvent<class_InputEvent>` другим плагинам редактора, кроме основного :ref:`Node3D<class_Node3D>`. Это можно использовать для предотвращения изменений выбора узлов и работы с под-gizmos.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_EditorPlugin_private_method__apply_changes:
.. rst-class:: classref-method
|void| **_apply_changes**\ (\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__apply_changes>`
Этот метод вызывается, когда редактор собирается сохранить проект, переключиться на другую вкладку и т. д. Он просит плагин применить любые отложенные изменения состояния, чтобы обеспечить согласованность.
Это используется, например, в редакторах шейдеров, чтобы дать плагину знать, что он должен применить код шейдера, написанный пользователем, к объекту.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__build:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_build**\ (\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__build>`
Этот метод вызывается, когда редактор собирается запустить проект.
Затем плагин может выполнить требуемые операции перед запуском проекта. Этот метод должен возвращать логическое значение. Если этот метод возвращает ``false``, проект не будет запущен. Запуск немедленно прерывается, поэтому это также предотвращает запуск всех методов :ref:`_build()<class_EditorPlugin_private_method__build>` других плагинов.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__clear:
.. rst-class:: classref-method
|void| **_clear**\ (\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__clear>`
Очистите все состояния и сбросьте редактируемый объект на ноль. Это гарантирует, что ваш плагин не будет продолжать редактировать существующий узел или узел из неправильной сцены.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__disable_plugin:
.. rst-class:: classref-method
|void| **_disable_plugin**\ (\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__disable_plugin>`
Вызывается движком, когда пользователь отключает **EditorPlugin** на вкладке «Плагин» окна настроек проекта.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__edit:
.. rst-class:: classref-method
|void| **_edit**\ (\ object\: :ref:`Object<class_Object>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__edit>`
Эта функция используется для плагинов, которые редактируют определенные типы объектов (узлы или ресурсы). Она запрашивает редактор для редактирования указанного объекта.
\ ``object`` может быть ``null``, если плагин редактировал объект, но больше нет выбранного объекта, обрабатываемого этим плагином. Его можно использовать для очистки состояния редактирования.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__enable_plugin:
.. rst-class:: classref-method
|void| **_enable_plugin**\ (\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__enable_plugin>`
Вызывается движком, когда пользователь включает **EditorPlugin** на вкладке «Плагин» окна настроек проекта.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__forward_3d_draw_over_viewport:
.. rst-class:: classref-method
|void| **_forward_3d_draw_over_viewport**\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__forward_3d_draw_over_viewport>`
Вызывается движком при обновлении области просмотра 3D-редактора. ``viewport_control`` — это наложение поверх области просмотра, которое можно использовать для рисования. Обновить область просмотра можно вручную, вызвав :ref:`update_overlays()<class_EditorPlugin_method_update_overlays>`.
.. tabs::
.. code-tab:: gdscript
func _forward_3d_draw_over_viewport(overlay):
# Нарисуйте круг в месте расположения курсора.
overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color.WHITE)
func _forward_3d_gui_input(camera, event):
if event is InputEventMouseMotion:
# Перерисовывать область просмотра при перемещении курсора.
update_overlays()
return EditorPlugin.AFTER_GUI_INPUT_STOP
return EditorPlugin.AFTER_GUI_INPUT_PASS
.. code-tab:: csharp
public override void _Forward3DDrawOverViewport(Control viewportControl)
{
// Нарисуйте круг в месте расположения курсора.
viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, Colors.White);
}
public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D viewportCamera, InputEvent @event)
{
if (@event is InputEventMouseMotion)
{
// Перерисовывать область просмотра при перемещении курсора.
UpdateOverlays();
return EditorPlugin.AfterGuiInput.Stop;
}
return EditorPlugin.AfterGuiInput.Pass;
}
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__forward_3d_force_draw_over_viewport:
.. rst-class:: classref-method
|void| **_forward_3d_force_draw_over_viewport**\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__forward_3d_force_draw_over_viewport>`
Этот метод такой же, как :ref:`_forward_3d_draw_over_viewport()<class_EditorPlugin_private_method__forward_3d_draw_over_viewport>`, за исключением того, что он рисует поверх всего. Полезно, когда вам нужен дополнительный слой, который отображается поверх всего остального.
Вам нужно включить вызов этого метода с помощью :ref:`set_force_draw_over_forwarding_enabled()<class_EditorPlugin_method_set_force_draw_over_forwarding_enabled>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__forward_3d_gui_input:
.. rst-class:: classref-method
:ref:`int<class_int>` **_forward_3d_gui_input**\ (\ viewport_camera\: :ref:`Camera3D<class_Camera3D>`, event\: :ref:`InputEvent<class_InputEvent>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__forward_3d_gui_input>`
Вызывается, когда в текущей редактируемой сцене есть корневой узел, реализуется :ref:`_handles()<class_EditorPlugin_private_method__handles>`, и в окне 3D-просмотра происходит :ref:`InputEvent<class_InputEvent>`. Возвращаемое значение определяет, будет ли :ref:`InputEvent<class_InputEvent>` использован или перенаправлен другим **EditorPlugin**. См. :ref:`AfterGUIInput<enum_EditorPlugin_AfterGUIInput>` для опций.
.. tabs::
.. code-tab:: gdscript
# Предотвращает попадание InputEvent в другие классы редактора.
func _forward_3d_gui_input(camera, event):
return EditorPlugin.AFTER_GUI_INPUT_STOP
.. code-tab:: csharp
// Предотвращает попадание InputEvent в другие классы редактора.
public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event)
{
return EditorPlugin.AfterGuiInput.Stop;
}
Этот метод должен возвращать :ref:`AFTER_GUI_INPUT_PASS<class_EditorPlugin_constant_AFTER_GUI_INPUT_PASS>` для пересылки :ref:`InputEvent<class_InputEvent>` другим классам редактора.
.. tabs::
.. code-tab:: gdscript
# Потребляет InputEventMouseMotion и пересылает другие типы InputEvent.
func _forward_3d_gui_input(camera, event):
return EditorPlugin.AFTER_GUI_INPUT_STOP if event is InputEventMouseMotion else EditorPlugin.AFTER_GUI_INPUT_PASS
.. code-tab:: csharp
//Потребляет InputEventMouseMotion и пересылает другие типы InputEvent.
public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event)
{
return @event is InputEventMouseMotion ? EditorPlugin.AfterGuiInput.Stop : EditorPlugin.AfterGuiInput.Pass;
}
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__forward_canvas_draw_over_viewport:
.. rst-class:: classref-method
|void| **_forward_canvas_draw_over_viewport**\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__forward_canvas_draw_over_viewport>`
Вызывается движком при обновлении области просмотра 2D-редактора. ``viewport_control`` — это наложение поверх области просмотра, которое можно использовать для рисования. Обновить область просмотра можно вручную, вызвав :ref:`update_overlays()<class_EditorPlugin_method_update_overlays>`.
.. tabs::
.. code-tab:: gdscript
func _forward_canvas_draw_over_viewport(overlay):
# Нарисуйте круг в месте расположения курсора.
overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color.WHITE)
func _forward_canvas_gui_input(event):
if event is InputEventMouseMotion:
# Перерисовывать область просмотра при перемещении курсора.
update_overlays()
return true
return false
.. code-tab:: csharp
public override void _ForwardCanvasDrawOverViewport(Control viewportControl)
{
// Нарисуйте круг в месте расположения курсора.
viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, Colors.White);
}
public override bool _ForwardCanvasGuiInput(InputEvent @event)
{
if (@event is InputEventMouseMotion)
{
// Перерисовывать область просмотра при перемещении курсора.
UpdateOverlays();
return true;
}
return false;
}
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__forward_canvas_force_draw_over_viewport:
.. rst-class:: classref-method
|void| **_forward_canvas_force_draw_over_viewport**\ (\ viewport_control\: :ref:`Control<class_Control>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__forward_canvas_force_draw_over_viewport>`
Этот метод такой же, как :ref:`_forward_canvas_draw_over_viewport()<class_EditorPlugin_private_method__forward_canvas_draw_over_viewport>`, за исключением того, что он рисует поверх всего. Полезно, когда вам нужен дополнительный слой, который отображается поверх всего остального.
Вам нужно включить вызов этого метода с помощью :ref:`set_force_draw_over_forwarding_enabled()<class_EditorPlugin_method_set_force_draw_over_forwarding_enabled>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__forward_canvas_gui_input:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_forward_canvas_gui_input**\ (\ event\: :ref:`InputEvent<class_InputEvent>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__forward_canvas_gui_input>`
Вызывается, когда в текущей редактируемой сцене есть корневой узел, реализуется :ref:`_handles()<class_EditorPlugin_private_method__handles>`, и в 2D-окне просмотра происходит :ref:`InputEvent<class_InputEvent>`. Если этот метод возвращает ``true``, ``event`` перехватывается этим **EditorPlugin**, в противном случае ``event`` пересылается другим классам Editor.
.. tabs::
.. code-tab:: gdscript
# Предотвращает попадание InputEvent в другие классы редактора.
func _forward_canvas_gui_input(event):
return true
.. code-tab:: csharp
// Предотвращает попадание InputEvent в другие классы редактора.
public override bool ForwardCanvasGuiInput(InputEvent @event)
{
return true;
}
Этот метод должен возвращать ``false``, чтобы переслать :ref:`InputEvent<class_InputEvent>` другим классам редактора.
.. tabs::
.. code-tab:: gdscript
# Потребляет InputEventMouseMotion и пересылает другие типы InputEvent.
func _forward_canvas_gui_input(event):
if (event is InputEventMouseMotion):
return true
return false
.. code-tab:: csharp
// Потребляет InputEventMouseMotion и пересылает другие типы InputEvent.
public override bool _ForwardCanvasGuiInput(InputEvent @event)
{
if (@event is InputEventMouseMotion)
{
return true;
}
return false;
}
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__get_breakpoints:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **_get_breakpoints**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__get_breakpoints>`
Это для редакторов, которые редактируют объекты на основе скриптов. Вы можете вернуть список точек останова в формате (``script:line``), например: ``res://path_to_script.gd:25``.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__get_plugin_icon:
.. rst-class:: classref-method
:ref:`Texture2D<class_Texture2D>` **_get_plugin_icon**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__get_plugin_icon>`
Переопределите этот метод в вашем плагине, чтобы вернуть :ref:`Texture2D<class_Texture2D>`, и чтобы присвоить ему значок.
Для плагинов главного экрана он отображается в верхней части экрана, справа от кнопок «2D», «3D», «Script», «Game» и «AssetLib».
В идеале значок плагина должен быть белым с прозрачным фоном и размером 16×16 пикселей.
.. tabs::
.. code-tab:: gdscript
func _get_plugin_icon():
# Вы можете использовать пользовательскую иконку:
return preload("res://addons/my_plugin/my_plugin_icon.svg")
# Или использовать встроенную иконку:
return EditorInterface.get_editor_theme().get_icon("Node", "EditorIcons")
.. code-tab:: csharp
public override Texture2D _GetPluginIcon()
{
// Вы можете использовать пользовательскую иконку:
return ResourceLoader.Load<Texture2D>("res://addons/my_plugin/my_plugin_icon.svg");
// Или использовать встроенную иконку:
return EditorInterface.Singleton.GetEditorTheme().GetIcon("Node", "EditorIcons");
}
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__get_plugin_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **_get_plugin_name**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__get_plugin_name>`
Переопределите этот метод в вашем плагине, чтобы указать имя плагина при отображении в редакторе Godot.
Для плагинов главного экрана это отображается в верхней части экрана, справа от кнопок «2D», «3D», «Script», «Game» и «AssetLib».
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__get_state:
.. rst-class:: classref-method
:ref:`Dictionary<class_Dictionary>` **_get_state**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__get_state>`
Переопределите этот метод, чтобы предоставить данные о состоянии, которые необходимо сохранить, например, положение вида, настройки сетки, сворачивание и т. д. Это используется при сохранении сцены (чтобы состояние сохранялось при её повторном открытии) и для переключения вкладок (чтобы состояние можно было восстановить при возврате вкладки). Эти данные автоматически сохраняются для каждой сцены в файле ``editstate`` в папке метаданных редактора. Если вы хотите сохранить глобальные (независимые от сцены) данные редактора для своего плагина, вы можете использовать :ref:`_get_window_layout()<class_EditorPlugin_private_method__get_window_layout>`.
Используйте :ref:`_set_state()<class_EditorPlugin_private_method__set_state>` для восстановления сохранённого состояния.
\ **Примечание:** Этот метод не следует использовать для сохранения важных настроек, которые должны сохраняться в проекте.
\ **Примечание:** Для корректного сохранения и восстановления состояния необходимо реализовать :ref:`_get_plugin_name()<class_EditorPlugin_private_method__get_plugin_name>`.
::
func _get_state():
var state = { "zoom": zoom, "preferred_color": my_color }
return state
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__get_unsaved_status:
.. rst-class:: classref-method
:ref:`String<class_String>` **_get_unsaved_status**\ (\ for_scene\: :ref:`String<class_String>`\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__get_unsaved_status>`
Переопределите этот метод, чтобы предоставить пользовательское сообщение, в котором перечислены несохраненные изменения. Редактор вызовет этот метод при выходе или закрытии сцены и отобразит возвращенную строку в диалоговом окне подтверждения. Возвращает пустую строку, если у плагина нет несохраненных изменений.
При закрытии сцены ``for_scene`` — это путь к закрываемой сцене. Вы можете использовать его для обработки встроенных ресурсов в этой сцене.
Если пользователь подтверждает сохранение, перед закрытием редактора будет вызван :ref:`_save_external_data()<class_EditorPlugin_private_method__save_external_data>`.
::
func _get_unsaved_status(for_scene):
if not unsaved:
return ""
if for_scene.is_empty():
return "Save changes in MyCustomPlugin before closing?"
else:
return "Scene %s has changes from MyCustomPlugin. Save before closing?" % for_scene.get_file()
func _save_external_data():
unsaved = false
Если плагин не имеет изменений, специфичных для сцены, вы можете игнорировать вызовы при закрытии сцен:
::
func _get_unsaved_status(for_scene):
if not for_scene.is_empty():
return ""
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__get_window_layout:
.. rst-class:: classref-method
|void| **_get_window_layout**\ (\ configuration\: :ref:`ConfigFile<class_ConfigFile>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__get_window_layout>`
Переопределите этот метод, чтобы предоставить макет GUI плагина или любые другие данные, которые вы хотите сохранить. Это используется для сохранения макета редактора проекта при вызове :ref:`queue_save_layout()<class_EditorPlugin_method_queue_save_layout>` или изменении макета редактора (например, при изменении положения дока). Данные сохраняются в файле ``editor_layout.cfg`` в каталоге метаданных редактора.
Используйте :ref:`_set_window_layout()<class_EditorPlugin_private_method__set_window_layout>`, чтобы восстановить сохраненный макет.
::
func _get_window_layout(configuration):
configuration.set_value("MyPlugin", "window_position", $Window.position)
configuration.set_value("MyPlugin", "icon_color", $Icon.modulate)
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__handles:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_handles**\ (\ object\: :ref:`Object<class_Object>`\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__handles>`
Реализуйте эту функцию, если ваш плагин редактирует определенный тип объекта (Ресурс или Узел). Если вы вернете ``true``, то вы получите функции :ref:`_edit()<class_EditorPlugin_private_method__edit>` и :ref:`_make_visible()<class_EditorPlugin_private_method__make_visible>`, вызванные, когда редактор их запросит. Если вы объявили методы :ref:`_forward_canvas_gui_input()<class_EditorPlugin_private_method__forward_canvas_gui_input>` и :ref:`_forward_3d_gui_input()<class_EditorPlugin_private_method__forward_3d_gui_input>`, они также будут вызваны.
\ **Примечание:** Каждый плагин должен обрабатывать только один тип объектов одновременно. Если плагин обрабатывает больше типов объектов и они редактируются одновременно, это приведет к ошибкам.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__has_main_screen:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **_has_main_screen**\ (\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__has_main_screen>`
Возвращает ``true``, если это плагин редактора основного экрана (он идет в селекторе рабочей области вместе с **2D**, **3D**, **Script**, **Game** и **AssetLib**).
Когда выбрана рабочая область плагина, другие плагины основного экрана будут скрыты, но ваш плагин не появится автоматически. Его нужно добавить как дочерний элемент :ref:`EditorInterface.get_editor_main_screen()<class_EditorInterface_method_get_editor_main_screen>` и сделать видимым внутри :ref:`_make_visible()<class_EditorPlugin_private_method__make_visible>`.
Используйте :ref:`_get_plugin_name()<class_EditorPlugin_private_method__get_plugin_name>` и :ref:`_get_plugin_icon()<class_EditorPlugin_private_method__get_plugin_icon>` для настройки внешнего вида кнопки плагина.
::
var plugin_control
func _enter_tree():
plugin_control = preload("my_plugin_control.tscn").instantiate()
EditorInterface.get_editor_main_screen().add_child(plugin_control)
plugin_control.hide()
func _has_main_screen():
return true
func _make_visible(visible):
plugin_control.visible = visible
func _get_plugin_name():
return "My Super Cool Plugin 3000"
func _get_plugin_icon():
return EditorInterface.get_editor_theme().get_icon("Node", "EditorIcons")
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__make_visible:
.. rst-class:: classref-method
|void| **_make_visible**\ (\ visible\: :ref:`bool<class_bool>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__make_visible>`
Эта функция будет вызвана, когда редактору будет предложено стать видимым. Она используется для плагинов, которые редактируют определенный тип объекта.
Помните, что вам придется вручную управлять видимостью всех элементов управления редактора.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__run_scene:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **_run_scene**\ (\ scene\: :ref:`String<class_String>`, args\: :ref:`PackedStringArray<class_PackedStringArray>`\ ) |virtual| |const| :ref:`🔗<class_EditorPlugin_private_method__run_scene>`
This function is called when an individual scene is about to be played in the editor. ``args`` is a list of command line arguments that will be passed to the new Godot instance, which will be replaced by the list returned by this function.
::
func _run_scene(scene, args):
args.append("--an-extra-argument")
return args
\ **Note:** Text that is printed in this method will not be visible in the editor's Output panel unless :ref:`EditorSettings.run/output/always_clear_output_on_play<class_EditorSettings_property_run/output/always_clear_output_on_play>` is ``false``.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__save_external_data:
.. rst-class:: classref-method
|void| **_save_external_data**\ (\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__save_external_data>`
Этот метод вызывается после того, как редактор сохраняет проект или когда он закрыт. Он просит плагин сохранить отредактированные внешние сцены/ресурсы.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__set_state:
.. rst-class:: classref-method
|void| **_set_state**\ (\ state\: :ref:`Dictionary<class_Dictionary>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__set_state>`
Восстановите состояние, сохраненное :ref:`_get_state()<class_EditorPlugin_private_method__get_state>`. Этот метод вызывается при изменении текущей вкладки сцены в редакторе.
\ **Примечание:** Ваш плагин должен реализовывать :ref:`_get_plugin_name()<class_EditorPlugin_private_method__get_plugin_name>`, иначе он не будет распознан и этот метод не будет вызван.
::
func _set_state(data):
zoom = data.get("zoom", 1.0)
preferred_color = data.get("my_color", Color.WHITE)
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_private_method__set_window_layout:
.. rst-class:: classref-method
|void| **_set_window_layout**\ (\ configuration\: :ref:`ConfigFile<class_ConfigFile>`\ ) |virtual| :ref:`🔗<class_EditorPlugin_private_method__set_window_layout>`
Восстановите макет GUI плагина и данные, сохраненные :ref:`_get_window_layout()<class_EditorPlugin_private_method__get_window_layout>`. Этот метод вызывается для каждого плагина при запуске редактора. Используйте предоставленный файл ``configuration`` для чтения сохраненных данных.
::
func _set_window_layout(configuration):
$Window.position = configuration.get_value("MyPlugin", "window_position", Vector2())
$Icon.modulate = configuration.get_value("MyPlugin", "icon_color", Color.WHITE)
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_autoload_singleton:
.. rst-class:: classref-method
|void| **add_autoload_singleton**\ (\ name\: :ref:`String<class_String>`, path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_method_add_autoload_singleton>`
Добавляет скрипт по адресу ``path`` в список автозагрузки как ``name``.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_context_menu_plugin:
.. rst-class:: classref-method
|void| **add_context_menu_plugin**\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_context_menu_plugin>`
Добавляет плагин в контекстное меню. ``slot`` — контекстное меню, в которое будет добавлен плагин.
\ **Примечание:** Экземпляр плагина может принадлежать только одному слоту контекстного меню.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_control_to_bottom_panel:
.. rst-class:: classref-method
:ref:`Button<class_Button>` **add_control_to_bottom_panel**\ (\ control\: :ref:`Control<class_Control>`, title\: :ref:`String<class_String>`, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ ) :ref:`🔗<class_EditorPlugin_method_add_control_to_bottom_panel>`
**Устарело:** Use :ref:`add_dock()<class_EditorPlugin_method_add_dock>` instead, with :ref:`EditorDock.default_slot<class_EditorDock_property_default_slot>` set to :ref:`DOCK_SLOT_BOTTOM<class_EditorPlugin_constant_DOCK_SLOT_BOTTOM>`.
Adds a control to the bottom panel (together with Output, Debug, Animation, etc.). Returns a reference to a button that is outside the scene tree. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with :ref:`remove_control_from_bottom_panel()<class_EditorPlugin_method_remove_control_from_bottom_panel>` and free it with :ref:`Node.queue_free()<class_Node_method_queue_free>`.
\ ``shortcut`` is a shortcut that, when activated, will toggle the bottom panel's visibility. The shortcut object is only set when this control is added to the bottom panel.
\ **Note** See the default editor bottom panel shortcuts in the Editor Settings for inspiration. By convention, they all use :kbd:`Alt` modifier.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_control_to_container:
.. rst-class:: classref-method
|void| **add_control_to_container**\ (\ container\: :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>`, control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorPlugin_method_add_control_to_container>`
Добавляет пользовательский элемент управления в контейнер в пользовательском интерфейсе редактора.
Помните, что вам придется самостоятельно управлять видимостью ваших пользовательских элементов управления (и, скорее всего, скрывать их после добавления).
Когда ваш плагин деактивирован, обязательно удалите пользовательский элемент управления с помощью :ref:`remove_control_from_container()<class_EditorPlugin_method_remove_control_from_container>` и освободите его с помощью :ref:`Node.queue_free()<class_Node_method_queue_free>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_control_to_dock:
.. rst-class:: classref-method
|void| **add_control_to_dock**\ (\ slot\: :ref:`DockSlot<enum_EditorPlugin_DockSlot>`, control\: :ref:`Control<class_Control>`, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ ) :ref:`🔗<class_EditorPlugin_method_add_control_to_dock>`
**Устарело:** Use :ref:`add_dock()<class_EditorPlugin_method_add_dock>` instead.
Добавляет элемент управления в определенный слот дока.
Если док перемещен и пока плагин активен, редактор сохранит позицию дока в последующих сеансах.
Когда ваш плагин деактивирован, обязательно удалите свой пользовательский элемент управления с помощью :ref:`remove_control_from_docks()<class_EditorPlugin_method_remove_control_from_docks>` и освободите его с помощью :ref:`Node.queue_free()<class_Node_method_queue_free>`.
При желании вы можете указать параметр сочетания клавиш. При нажатии сочетания клавиш откроет и сфокусирует док.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_custom_type:
.. rst-class:: classref-method
|void| **add_custom_type**\ (\ type\: :ref:`String<class_String>`, base\: :ref:`String<class_String>`, script\: :ref:`Script<class_Script>`, icon\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_EditorPlugin_method_add_custom_type>`
Добавляет пользовательский тип, который появится в списке узлов или ресурсов.
Когда выбран заданный узел или ресурс, будет создан экземпляр базового типа (например, "Node3D", "Control", "Resource"), затем скрипт будет загружен и установлен для этого объекта.
\ **Примечание:** Базовый тип — это базовый класс движка, который наследует иерархия классов этого типа, а не родительские классы пользовательских типов.
Вы можете использовать виртуальный метод :ref:`_handles()<class_EditorPlugin_private_method__handles>`, чтобы проверить, редактируется ли ваш пользовательский объект, проверив скрипт или используя ключевое слово ``is``.
Во время выполнения это будет простой объект со скриптом, поэтому эту функцию не нужно вызывать.
\ **Примечание:** Пользовательские типы, добавленные таким образом, не являются настоящими классами. Они являются просто вспомогательными для создания узла с определенным скриптом.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_debugger_plugin:
.. rst-class:: classref-method
|void| **add_debugger_plugin**\ (\ script\: :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_debugger_plugin>`
Добавляет :ref:`Script<class_Script>` как плагин отладчика к Debugger. Скрипт должен расширять :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_dock:
.. rst-class:: classref-method
|void| **add_dock**\ (\ dock\: :ref:`EditorDock<class_EditorDock>`\ ) :ref:`🔗<class_EditorPlugin_method_add_dock>`
Adds a new dock.
When your plugin is deactivated, make sure to remove your custom dock with :ref:`remove_dock()<class_EditorPlugin_method_remove_dock>` and free it with :ref:`Node.queue_free()<class_Node_method_queue_free>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_export_platform:
.. rst-class:: classref-method
|void| **add_export_platform**\ (\ platform\: :ref:`EditorExportPlatform<class_EditorExportPlatform>`\ ) :ref:`🔗<class_EditorPlugin_method_add_export_platform>`
Регистрирует новый :ref:`EditorExportPlatform<class_EditorExportPlatform>`. Экспорт платформ обеспечивает функциональность экспорта на определенную платформу.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_export_plugin:
.. rst-class:: classref-method
|void| **add_export_plugin**\ (\ plugin\: :ref:`EditorExportPlugin<class_EditorExportPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_export_plugin>`
Регистрирует новый :ref:`EditorExportPlugin<class_EditorExportPlugin>`. Плагины экспорта используются для выполнения задач при экспорте проекта.
См. :ref:`add_inspector_plugin()<class_EditorPlugin_method_add_inspector_plugin>` для примера регистрации плагина.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_import_plugin:
.. rst-class:: classref-method
|void| **add_import_plugin**\ (\ importer\: :ref:`EditorImportPlugin<class_EditorImportPlugin>`, first_priority\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_EditorPlugin_method_add_import_plugin>`
Регистрирует новый :ref:`EditorImportPlugin<class_EditorImportPlugin>`. Импортные плагины используются для импорта пользовательских и неподдерживаемых ресурсов в качестве пользовательского типа :ref:`Resource<class_Resource>`.
Если ``first_priority`` равен ``true``, новый импортный плагин вставляется первым в списке и имеет приоритет над уже существующими плагинами.
\ **Примечание:** Если вы хотите импортировать пользовательские форматы 3D-ресурсов, используйте вместо этого :ref:`add_scene_format_importer_plugin()<class_EditorPlugin_method_add_scene_format_importer_plugin>`.
См. :ref:`add_inspector_plugin()<class_EditorPlugin_method_add_inspector_plugin>` для примера регистрации плагина.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_inspector_plugin:
.. rst-class:: classref-method
|void| **add_inspector_plugin**\ (\ plugin\: :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_inspector_plugin>`
Регистрирует новый :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`. Плагины инспектора используются для расширения :ref:`EditorInspector<class_EditorInspector>` и предоставления пользовательских инструментов настройки для свойств вашего объекта.
\ **Примечание:** Всегда используйте :ref:`remove_inspector_plugin()<class_EditorPlugin_method_remove_inspector_plugin>` для удаления зарегистрированного :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`, когда ваш **EditorPlugin** отключен, чтобы предотвратить утечки и непредвиденное поведение.
.. tabs::
.. code-tab:: gdscript
const MyInspectorPlugin = preload("res://addons/your_addon/path/to/your/script.gd")
var inspector_plugin = MyInspectorPlugin.new()
func _enter_tree():
add_inspector_plugin(inspector_plugin)
func _exit_tree():
remove_inspector_plugin(inspector_plugin)
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_node_3d_gizmo_plugin:
.. rst-class:: classref-method
|void| **add_node_3d_gizmo_plugin**\ (\ plugin\: :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_node_3d_gizmo_plugin>`
Регистрирует новый :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>`. Плагины Gizmo используются для добавления пользовательских гизмо в область предварительного просмотра 3D для :ref:`Node3D<class_Node3D>`.
См. :ref:`add_inspector_plugin()<class_EditorPlugin_method_add_inspector_plugin>` для примера регистрации плагина.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_resource_conversion_plugin:
.. rst-class:: classref-method
|void| **add_resource_conversion_plugin**\ (\ plugin\: :ref:`EditorResourceConversionPlugin<class_EditorResourceConversionPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_resource_conversion_plugin>`
Регистрирует новый :ref:`EditorResourceConversionPlugin<class_EditorResourceConversionPlugin>`. Плагины преобразования ресурсов используются для добавления пользовательских преобразователей ресурсов в инспектор редактора.
См. :ref:`EditorResourceConversionPlugin<class_EditorResourceConversionPlugin>` для примера создания плагина преобразования ресурсов.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_scene_format_importer_plugin:
.. rst-class:: classref-method
|void| **add_scene_format_importer_plugin**\ (\ scene_format_importer\: :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>`, first_priority\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_EditorPlugin_method_add_scene_format_importer_plugin>`
Регистрирует новый :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>`. Импортеры сцен используются для импорта пользовательских форматов 3D-ресурсов в качестве сцен.
Если ``first_priority`` равен ``true``, новый плагин импорта вставляется первым в списке и имеет приоритет над уже существующими плагинами.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_scene_post_import_plugin:
.. rst-class:: classref-method
|void| **add_scene_post_import_plugin**\ (\ scene_import_plugin\: :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`, first_priority\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_EditorPlugin_method_add_scene_post_import_plugin>`
Добавьте :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`. Эти плагины позволяют настраивать процесс импорта 3D-ресурсов, добавляя новые параметры в диалоговые окна импорта.
Если ``first_priority`` равен ``true``, новый плагин импорта вставляется первым в списке и имеет приоритет над уже существующими плагинами.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_tool_menu_item:
.. rst-class:: classref-method
|void| **add_tool_menu_item**\ (\ name\: :ref:`String<class_String>`, callable\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_EditorPlugin_method_add_tool_menu_item>`
Добавляет пользовательский элемент меню в **Проект > Инструменты** с именем ``name``]. При щелчке будет вызван предоставленный ``callable``.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_tool_submenu_item:
.. rst-class:: classref-method
|void| **add_tool_submenu_item**\ (\ name\: :ref:`String<class_String>`, submenu\: :ref:`PopupMenu<class_PopupMenu>`\ ) :ref:`🔗<class_EditorPlugin_method_add_tool_submenu_item>`
Добавляет пользовательское подменю :ref:`PopupMenu<class_PopupMenu>` в **Проект > Инструменты >** ``name``. Используйте :ref:`remove_tool_menu_item()<class_EditorPlugin_method_remove_tool_menu_item>` при очистке плагина, чтобы удалить меню.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_translation_parser_plugin:
.. rst-class:: classref-method
|void| **add_translation_parser_plugin**\ (\ parser\: :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_translation_parser_plugin>`
Регистрирует пользовательский плагин анализатора перевода для извлечения переводимых строк из пользовательских файлов.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_add_undo_redo_inspector_hook_callback:
.. rst-class:: classref-method
|void| **add_undo_redo_inspector_hook_callback**\ (\ callable\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_EditorPlugin_method_add_undo_redo_inspector_hook_callback>`
Подключает обратный вызов к созданию действия отмены/повтора при изменении свойства в инспекторе. Это позволяет, например, сохранять другие свойства, которые могут быть потеряны при изменении данного свойства.
Обратный вызов должен иметь 4 аргумента: :ref:`Object<class_Object>` ``undo_redo``, :ref:`Object<class_Object>` ``modified_object``, :ref:`String<class_String>` ``property`` и :ref:`Variant<class_Variant>` ``new_value``. Это, соответственно, объект :ref:`UndoRedo<class_UndoRedo>`, используемый инспектором, текущий измененный объект, имя измененного свойства и новое значение, которое свойство собирается принять.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_get_editor_interface:
.. rst-class:: classref-method
:ref:`EditorInterface<class_EditorInterface>` **get_editor_interface**\ (\ ) :ref:`🔗<class_EditorPlugin_method_get_editor_interface>`
**Устарело:** :ref:`EditorInterface<class_EditorInterface>` is a global singleton and can be accessed directly by its name.
Возвращает экземпляр синглтона :ref:`EditorInterface<class_EditorInterface>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_get_export_as_menu:
.. rst-class:: classref-method
:ref:`PopupMenu<class_PopupMenu>` **get_export_as_menu**\ (\ ) :ref:`🔗<class_EditorPlugin_method_get_export_as_menu>`
Возвращает :ref:`PopupMenu<class_PopupMenu>` в разделе **Сцена > Экспортировать как...**.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_get_plugin_version:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_plugin_version**\ (\ ) |const| :ref:`🔗<class_EditorPlugin_method_get_plugin_version>`
Укажите версию плагина, объявленную в файле конфигурации ``plugin.cfg``.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_get_script_create_dialog:
.. rst-class:: classref-method
:ref:`ScriptCreateDialog<class_ScriptCreateDialog>` **get_script_create_dialog**\ (\ ) :ref:`🔗<class_EditorPlugin_method_get_script_create_dialog>`
Получает диалог редактора, используемый для создания скриптов.
\ **Примечание:** Пользователи могут настроить его перед использованием.
\ **Предупреждение:** Удаление и освобождение этого узла сделает часть редактора бесполезной и может привести к сбою.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_get_undo_redo:
.. rst-class:: classref-method
:ref:`EditorUndoRedoManager<class_EditorUndoRedoManager>` **get_undo_redo**\ (\ ) :ref:`🔗<class_EditorPlugin_method_get_undo_redo>`
Получает объект отмены/повтора. Большинство действий в редакторе можно отменить, поэтому используйте этот объект, чтобы убедиться, что это произойдет, когда это того стоит.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_hide_bottom_panel:
.. rst-class:: classref-method
|void| **hide_bottom_panel**\ (\ ) :ref:`🔗<class_EditorPlugin_method_hide_bottom_panel>`
Сворачивает нижнюю панель.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_make_bottom_panel_item_visible:
.. rst-class:: classref-method
|void| **make_bottom_panel_item_visible**\ (\ item\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorPlugin_method_make_bottom_panel_item_visible>`
Делает видимым определенный элемент на нижней панели.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_queue_save_layout:
.. rst-class:: classref-method
|void| **queue_save_layout**\ (\ ) :ref:`🔗<class_EditorPlugin_method_queue_save_layout>`
Очередь сохранения макета редактора проекта.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_autoload_singleton:
.. rst-class:: classref-method
|void| **remove_autoload_singleton**\ (\ name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_autoload_singleton>`
Удаляет автозагрузку ``name`` из списка.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_context_menu_plugin:
.. rst-class:: classref-method
|void| **remove_context_menu_plugin**\ (\ plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_context_menu_plugin>`
Удаляет указанный плагин контекстного меню.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_control_from_bottom_panel:
.. rst-class:: classref-method
|void| **remove_control_from_bottom_panel**\ (\ control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_control_from_bottom_panel>`
**Устарело:** Use :ref:`remove_dock()<class_EditorPlugin_method_remove_dock>` instead.
Удаляет элемент управления с нижней панели. Вам придется вручную :ref:`Node.queue_free()<class_Node_method_queue_free>` элемент управления.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_control_from_container:
.. rst-class:: classref-method
|void| **remove_control_from_container**\ (\ container\: :ref:`CustomControlContainer<enum_EditorPlugin_CustomControlContainer>`, control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_control_from_container>`
Удаляет элемент управления из указанного контейнера. Вам необходимо вручную :ref:`Node.queue_free()<class_Node_method_queue_free>` элемент управления.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_control_from_docks:
.. rst-class:: classref-method
|void| **remove_control_from_docks**\ (\ control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_control_from_docks>`
**Устарело:** Use :ref:`remove_dock()<class_EditorPlugin_method_remove_dock>` instead.
Удаляет элемент управления из дока. Вам придется вручную :ref:`Node.queue_free()<class_Node_method_queue_free>` элемент управления.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_custom_type:
.. rst-class:: classref-method
|void| **remove_custom_type**\ (\ type\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_custom_type>`
Удаляет пользовательский тип, добавленный :ref:`add_custom_type()<class_EditorPlugin_method_add_custom_type>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_debugger_plugin:
.. rst-class:: classref-method
|void| **remove_debugger_plugin**\ (\ script\: :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_debugger_plugin>`
Удаляет плагин отладчика с указанным скриптом из отладчика.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_dock:
.. rst-class:: classref-method
|void| **remove_dock**\ (\ dock\: :ref:`EditorDock<class_EditorDock>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_dock>`
Removes ``dock`` from the available docks. You should manually call :ref:`Node.queue_free()<class_Node_method_queue_free>` to free it.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_export_platform:
.. rst-class:: classref-method
|void| **remove_export_platform**\ (\ platform\: :ref:`EditorExportPlatform<class_EditorExportPlatform>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_export_platform>`
Удаляет экспортную платформу, зарегистрированную :ref:`add_export_platform()<class_EditorPlugin_method_add_export_platform>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_export_plugin:
.. rst-class:: classref-method
|void| **remove_export_plugin**\ (\ plugin\: :ref:`EditorExportPlugin<class_EditorExportPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_export_plugin>`
Удаляет плагин экспорта, зарегистрированный :ref:`add_export_plugin()<class_EditorPlugin_method_add_export_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_import_plugin:
.. rst-class:: classref-method
|void| **remove_import_plugin**\ (\ importer\: :ref:`EditorImportPlugin<class_EditorImportPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_import_plugin>`
Удаляет плагин импорта, зарегистрированный :ref:`add_import_plugin()<class_EditorPlugin_method_add_import_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_inspector_plugin:
.. rst-class:: classref-method
|void| **remove_inspector_plugin**\ (\ plugin\: :ref:`EditorInspectorPlugin<class_EditorInspectorPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_inspector_plugin>`
Удаляет плагин инспектора, зарегистрированный :ref:`add_inspector_plugin()<class_EditorPlugin_method_add_inspector_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_node_3d_gizmo_plugin:
.. rst-class:: classref-method
|void| **remove_node_3d_gizmo_plugin**\ (\ plugin\: :ref:`EditorNode3DGizmoPlugin<class_EditorNode3DGizmoPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_node_3d_gizmo_plugin>`
Удаляет плагин gizmo, зарегистрированный :ref:`add_node_3d_gizmo_plugin()<class_EditorPlugin_method_add_node_3d_gizmo_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_resource_conversion_plugin:
.. rst-class:: classref-method
|void| **remove_resource_conversion_plugin**\ (\ plugin\: :ref:`EditorResourceConversionPlugin<class_EditorResourceConversionPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_resource_conversion_plugin>`
Удаляет плагин преобразования ресурсов, зарегистрированный :ref:`add_resource_conversion_plugin()<class_EditorPlugin_method_add_resource_conversion_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_scene_format_importer_plugin:
.. rst-class:: classref-method
|void| **remove_scene_format_importer_plugin**\ (\ scene_format_importer\: :ref:`EditorSceneFormatImporter<class_EditorSceneFormatImporter>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_scene_format_importer_plugin>`
Удаляет импортер формата сцены, зарегистрированный :ref:`add_scene_format_importer_plugin()<class_EditorPlugin_method_add_scene_format_importer_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_scene_post_import_plugin:
.. rst-class:: classref-method
|void| **remove_scene_post_import_plugin**\ (\ scene_import_plugin\: :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_scene_post_import_plugin>`
Удалите :ref:`EditorScenePostImportPlugin<class_EditorScenePostImportPlugin>`, добавленный с помощью :ref:`add_scene_post_import_plugin()<class_EditorPlugin_method_add_scene_post_import_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_tool_menu_item:
.. rst-class:: classref-method
|void| **remove_tool_menu_item**\ (\ name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_tool_menu_item>`
Удаляет меню ``name`` из **Проект > Инструменты**.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_translation_parser_plugin:
.. rst-class:: classref-method
|void| **remove_translation_parser_plugin**\ (\ parser\: :ref:`EditorTranslationParserPlugin<class_EditorTranslationParserPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_translation_parser_plugin>`
Удаляет пользовательский плагин парсера перевода, зарегистрированный :ref:`add_translation_parser_plugin()<class_EditorPlugin_method_add_translation_parser_plugin>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_remove_undo_redo_inspector_hook_callback:
.. rst-class:: classref-method
|void| **remove_undo_redo_inspector_hook_callback**\ (\ callable\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_undo_redo_inspector_hook_callback>`
Удаляет обратный вызов, ранее добавленный :ref:`add_undo_redo_inspector_hook_callback()<class_EditorPlugin_method_add_undo_redo_inspector_hook_callback>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_set_dock_tab_icon:
.. rst-class:: classref-method
|void| **set_dock_tab_icon**\ (\ control\: :ref:`Control<class_Control>`, icon\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_EditorPlugin_method_set_dock_tab_icon>`
**Устарело:** Use :ref:`EditorDock.dock_icon<class_EditorDock_property_dock_icon>` instead.
Устанавливает значок вкладки для указанного элемента управления в слоте дока. Установка ``null`` удаляет значок.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_set_force_draw_over_forwarding_enabled:
.. rst-class:: classref-method
|void| **set_force_draw_over_forwarding_enabled**\ (\ ) :ref:`🔗<class_EditorPlugin_method_set_force_draw_over_forwarding_enabled>`
Позволяет вызывать :ref:`_forward_canvas_force_draw_over_viewport()<class_EditorPlugin_private_method__forward_canvas_force_draw_over_viewport>` для 2D-редактора и :ref:`_forward_3d_force_draw_over_viewport()<class_EditorPlugin_private_method__forward_3d_force_draw_over_viewport>` для 3D-редактора при обновлении их вьюпортов. Вам нужно вызвать этот метод только один раз, и он будет работать постоянно для этого плагина.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_set_input_event_forwarding_always_enabled:
.. rst-class:: classref-method
|void| **set_input_event_forwarding_always_enabled**\ (\ ) :ref:`🔗<class_EditorPlugin_method_set_input_event_forwarding_always_enabled>`
Используйте этот метод, если вы всегда хотите получать входные данные с экрана 3D-вида внутри :ref:`_forward_3d_gui_input()<class_EditorPlugin_private_method__forward_3d_gui_input>`. Он может быть особенно полезен, если ваш плагин захочет использовать raycast в сцене.
.. rst-class:: classref-item-separator
----
.. _class_EditorPlugin_method_update_overlays:
.. rst-class:: classref-method
:ref:`int<class_int>` **update_overlays**\ (\ ) |const| :ref:`🔗<class_EditorPlugin_method_update_overlays>`
Обновляет наложения вьюпорта 2D- и 3D-редактора. Вызывает вызов методов :ref:`_forward_canvas_draw_over_viewport()<class_EditorPlugin_private_method__forward_canvas_draw_over_viewport>`, :ref:`_forward_canvas_force_draw_over_viewport()<class_EditorPlugin_private_method__forward_canvas_force_draw_over_viewport>`, :ref:`_forward_3d_draw_over_viewport()<class_EditorPlugin_private_method__forward_3d_draw_over_viewport>` и :ref:`_forward_3d_force_draw_over_viewport()<class_EditorPlugin_private_method__forward_3d_force_draw_over_viewport>`.
.. |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 (Нет возвращаемого значения.)`