EditorInterface

Наследует: Object

Интерфейс редактора Godot.

Описание

EditorInterface дает вам контроль над окном редактора Godot. Он позволяет настраивать окно, сохранять и (пере)загружать сцены, визуализировать предварительные просмотры сеток, проверять и редактировать ресурсы и объекты, а также предоставляет доступ к EditorSettings, EditorFileSystem, EditorResourcePreview, ScriptEditor, окну просмотра редактора и информации о сценах.

Примечание: Этот класс не должен быть инстанцирован напрямую. Вместо этого обращайтесь к синглтону напрямую по его имени.

var editor_settings = EditorInterface.get_editor_settings()

Свойства

bool

distraction_free_mode

bool

movie_maker_enabled

Методы

void

add_root_node(node: Node)

Error

close_scene()

void

edit_node(node: Node)

void

edit_resource(resource: Resource)

void

edit_script(script: Script, line: int = -1, column: int = 0, grab_focus: bool = true)

Control

get_base_control() const

EditorCommandPalette

get_command_palette() const

String

get_current_directory() const

String

get_current_feature_profile() const

String

get_current_path() const

Node

get_edited_scene_root() const

String

get_editor_language() const

VBoxContainer

get_editor_main_screen() const

EditorPaths

get_editor_paths() const

float

get_editor_scale() const

EditorSettings

get_editor_settings() const

Theme

get_editor_theme() const

EditorToaster

get_editor_toaster() const

EditorUndoRedoManager

get_editor_undo_redo() const

SubViewport

get_editor_viewport_2d() const

SubViewport

get_editor_viewport_3d(idx: int = 0) const

FileSystemDock

get_file_system_dock() const

EditorInspector

get_inspector() const

float

get_node_3d_rotate_snap() const

float

get_node_3d_scale_snap() const

float

get_node_3d_translate_snap() const

Array[Node]

get_open_scene_roots() const

PackedStringArray

get_open_scenes() const

String

get_playing_scene() const

EditorFileSystem

get_resource_filesystem() const

EditorResourcePreview

get_resource_previewer() const

ScriptEditor

get_script_editor() const

PackedStringArray

get_selected_paths() const

EditorSelection

get_selection() const

void

inspect_object(object: Object, for_property: String = "", inspector_only: bool = false)

bool

is_multi_window_enabled() const

bool

is_node_3d_snap_enabled() const

bool

is_object_edited(object: Object) const

bool

is_playing_scene() const

bool

is_plugin_enabled(plugin: String) const

Array[Texture2D]

make_mesh_previews(meshes: Array[Mesh], preview_size: int)

void

mark_scene_as_unsaved()

void

open_scene_from_path(scene_filepath: String, set_inherited: bool = false)

void

play_current_scene()

void

play_custom_scene(scene_filepath: String)

void

play_main_scene()

void

popup_create_dialog(callback: Callable, base_type: StringName = "", current_type: String = "", dialog_title: String = "", type_blocklist: Array[StringName] = [])

void

popup_dialog(dialog: Window, rect: Rect2i = Rect2i(0, 0, 0, 0))

void

popup_dialog_centered(dialog: Window, minsize: Vector2i = Vector2i(0, 0))

void

popup_dialog_centered_clamped(dialog: Window, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75)

void

popup_dialog_centered_ratio(dialog: Window, ratio: float = 0.8)

void

popup_method_selector(object: Object, callback: Callable, current_value: String = "")

void

popup_node_selector(callback: Callable, valid_types: Array[StringName] = [], current_value: Node = null)

void

popup_property_selector(object: Object, callback: Callable, type_filter: PackedInt32Array = PackedInt32Array(), current_value: String = "")

void

popup_quick_open(callback: Callable, base_types: Array[StringName] = [])

void

reload_scene_from_path(scene_filepath: String)

void

restart_editor(save: bool = true)

void

save_all_scenes()

Error

save_scene()

void

save_scene_as(path: String, with_preview: bool = true)

void

select_file(file: String)

void

set_current_feature_profile(profile_name: String)

void

set_main_screen_editor(name: String)

void

set_object_edited(object: Object, edited: bool)

void

set_plugin_enabled(plugin: String, enabled: bool)

void

stop_playing_scene()


Описания свойств

bool distraction_free_mode 🔗

  • void set_distraction_free_mode(value: bool)

  • bool is_distraction_free_mode_enabled()

Если true, включается режим без отвлекающих факторов, который скрывает боковые доки, чтобы увеличить пространство, доступное для основного вида.


bool movie_maker_enabled 🔗

  • void set_movie_maker_enabled(value: bool)

  • bool is_movie_maker_enabled()

Если true, режим Movie Maker включен в редакторе. См. MovieWriter для получения дополнительной информации.


Описания метода

void add_root_node(node: Node) 🔗

Делает node корнем текущей открытой сцены. Работает только если сцена пуста. Если node является экземпляром сцены, будет создана наследующая сцена.


Error close_scene() 🔗

Закрывает текущую активную сцену, отменяя любые ожидающие изменения в процессе. Возвращает @GlobalScope.OK в случае успеха или @GlobalScope.ERR_DOES_NOT_EXIST, если нет сцены для закрытия.


void edit_node(node: Node) 🔗

Редактирует заданный Node. Узел также будет выбран, если он находится внутри дерева сцены.


void edit_resource(resource: Resource) 🔗

Редактирует указанный Resource. Если ресурс — это Script, вы также можете редактировать его с помощью edit_script(), чтобы указать позицию строки и столбца.


void edit_script(script: Script, line: int = -1, column: int = 0, grab_focus: bool = true) 🔗

Редактирует заданный Script. Также можно указать строку и столбец, в которых следует открыть скрипт. Скрипт будет открыт с помощью редактора, настроенного пользователем для языка скрипта, который может быть внешним редактором.


Control get_base_control() const 🔗

Возвращает основной контейнер окна редактора Godot. Например, вы можете использовать его для получения размера контейнера и размещения элементов управления соответствующим образом.

Предупреждение: Удаление и освобождение этого узла сделает редактор бесполезным и может привести к сбою.


EditorCommandPalette get_command_palette() const 🔗

Возвращает экземпляр редактора EditorCommandPalette.

Предупреждение: Удаление и освобождение этого узла сделает часть редактора бесполезной и может привести к сбою.


String get_current_directory() const 🔗

Возвращает текущий каталог, просматриваемый в FileSystemDock. Если выбран файл, его базовый каталог будет возвращен с использованием String.get_base_dir().


String get_current_feature_profile() const 🔗

Возвращает имя текущего активированного профиля функций. Если в данный момент активен профиль по умолчанию, вместо него возвращается пустая строка.

Чтобы получить ссылку на EditorFeatureProfile, необходимо загрузить профиль функций с помощью EditorFeatureProfile.load_from_file().

Примечание: Профили функций, созданные через пользовательский интерфейс, загружаются из каталога feature_profiles в виде файла с расширением .profile. Папку конфигурации редактора можно найти с помощью EditorPaths.get_config_dir().


String get_current_path() const 🔗

Возвращает текущий путь, просматриваемый в FileSystemDock.


Node get_edited_scene_root() const 🔗

Возвращает корень Node отредактированной (текущей) сцены.


String get_editor_language() const 🔗

Возвращает язык, используемый в данный момент для интерфейса редактора.


VBoxContainer get_editor_main_screen() const 🔗

Возвращает элемент управления редактора, отвечающий за плагины и инструменты главного экрана. Используйте его с плагинами, реализующими EditorPlugin._has_main_screen().

Примечание: Этот узел является VBoxContainer, что означает, что если вы добавляете к нему дочерний элемент Control, вам необходимо установить Control.size_flags_vertical дочернего элемента на Control.SIZE_EXPAND_FILL, чтобы он использовал все доступное пространство.

Предупреждение: Удаление и освобождение этого узла сделает часть редактора бесполезной и может привести к сбою.


EditorPaths get_editor_paths() const 🔗

Возвращает синглтон EditorPaths.


float get_editor_scale() const 🔗

Возвращает фактический масштаб пользовательского интерфейса редактора (1.0 — 100% масштаб). Это можно использовать для настройки положения и размеров пользовательского интерфейса, добавленного плагинами.

Примечание: Это значение задается через настройки EditorSettings.interface/editor/display_scale и EditorSettings.interface/editor/custom_display_scale. Редактор необходимо перезапустить, чтобы изменения вступили в силу должным образом.


EditorSettings get_editor_settings() const 🔗

Возвращает экземпляр EditorSettings редактора.


Theme get_editor_theme() const 🔗

Возвращает Theme редактора.

Примечание: При создании пользовательского интерфейса редактора предпочитайте получать доступ к элементам темы напрямую из узлов вашего графического интерфейса с помощью методов get_theme_*.


EditorToaster get_editor_toaster() const 🔗

Возвращает EditorToaster редактора.


EditorUndoRedoManager get_editor_undo_redo() const 🔗

Возвращает EditorUndoRedoManager редактора.


SubViewport get_editor_viewport_2d() const 🔗

Возвращает 2D-редактор SubViewport. У него нет камеры. Вместо этого преобразования вида выполняются напрямую и могут быть доступны с помощью Viewport.global_canvas_transform.


SubViewport get_editor_viewport_3d(idx: int = 0) const 🔗

Возвращает указанный 3D-редактор SubViewport, от 0 до 3. Окно просмотра можно использовать для доступа к активным камерам редактора с помощью Viewport.get_camera_3d().


FileSystemDock get_file_system_dock() const 🔗

Возвращает экземпляр редактора FileSystemDock.

Предупреждение: Удаление и освобождение этого узла сделает часть редактора бесполезной и может привести к сбою.


EditorInspector get_inspector() const 🔗

Возвращает экземпляр редактора EditorInspector.

Предупреждение: Удаление и освобождение этого узла сделает часть редактора бесполезной и может привести к сбою.


float get_node_3d_rotate_snap() const 🔗

Возвращает значение, на которое установлена привязка к вращательному полю в 3D-редакторе.


float get_node_3d_scale_snap() const 🔗

Возвращает количество единиц, на которое установлена привязка масштаба в 3D-редакторе.


float get_node_3d_translate_snap() const 🔗

Возвращает значение, на которое установлена привязка к перемещению в 3D-редакторе.


Array[Node] get_open_scene_roots() const 🔗

Возвращает массив со ссылками на корневые узлы открытых в данный момент сцен.


PackedStringArray get_open_scenes() const 🔗

Возвращает массив с путями к файлам открытых в данный момент сцен.


String get_playing_scene() const 🔗

Возвращает имя сцены, которая воспроизводится. Если в данный момент сцена не воспроизводится, возвращает пустую строку.


EditorFileSystem get_resource_filesystem() const 🔗

Возвращает экземпляр EditorFileSystem редактора.


EditorResourcePreview get_resource_previewer() const 🔗

Возвращает экземпляр EditorResourcePreview редактора.


ScriptEditor get_script_editor() const 🔗

Возвращает экземпляр редактора ScriptEditor.

Предупреждение: Удаление и освобождение этого узла сделает часть редактора бесполезной и может привести к сбою.


PackedStringArray get_selected_paths() const 🔗

Возвращает массив, содержащий пути к текущим выбранным файлам (и каталогам) в FileSystemDock.


EditorSelection get_selection() const 🔗

Возвращает экземпляр EditorSelection редактора.


void inspect_object(object: Object, for_property: String = "", inspector_only: bool = false) 🔗

Показывает заданное свойство для заданного object в доке Inspector редактора. Если inspector_only равно true, плагины не будут пытаться редактировать object.


bool is_multi_window_enabled() const 🔗

Возвращает true, если в редакторе включена поддержка нескольких окон. Поддержка нескольких окон включена, если все из этих утверждений истинны:


bool is_node_3d_snap_enabled() const 🔗

Возвращает true, если в 3D-редакторе в данный момент включен режим привязки, и false в противном случае.


bool is_object_edited(object: Object) const 🔗

Возвращает true, если объект был помечен как отредактированный с помощью set_object_edited().


bool is_playing_scene() const 🔗

Возвращает true, если сцена в данный момент воспроизводится, false в противном случае. Остановленные сцены считаются воспроизводимыми.


bool is_plugin_enabled(plugin: String) const 🔗

Возвращает true, если указанный plugin включен. Имя плагина совпадает с именем его каталога.


Array[Texture2D] make_mesh_previews(meshes: Array[Mesh], preview_size: int) 🔗

Возвращает предварительные просмотры сетки, отрисованные в заданном размере, как Array из Texture2D-ов.


void mark_scene_as_unsaved() 🔗

Отмечает текущую вкладку сцены как несохраненную.


void open_scene_from_path(scene_filepath: String, set_inherited: bool = false) 🔗

Открывает сцену по указанному пути. Если set_inherited равен true, создает новую унаследованную сцену.


void play_current_scene() 🔗

Воспроизводит текущую активную сцену.


void play_custom_scene(scene_filepath: String) 🔗

Воспроизводит сцену, указанную в пути к файлу.


void play_main_scene() 🔗

Играет главную сцену.


void popup_create_dialog(callback: Callable, base_type: StringName = "", current_type: String = "", dialog_title: String = "", type_blocklist: Array[StringName] = []) 🔗

Экспериментальное: Этот метод может быть изменён или удалён в будущих версиях.

Открывает диалоговое окно редактора для создания объекта.

Параметр callback должен принимать один аргумент типа String, который будет содержать имя типа выбранного объекта (или путь к скрипту типа, если тип создан из скрипта), или пустую строку, если ни один элемент не выбран.

Параметр base_type указывает базовый тип отображаемых объектов. Например, если вы установите его значение на "Resource", в диалоговом окне создания будут отображаться все типы, производные от Resource.

Параметр current_type будет передан в поле поиска диалогового окна создания, и указанный тип можно будет сразу выбрать при появлении диалогового окна. Если current_type не является производным от base_type, в диалоговом окне не будет результатов этого типа.

Параметр dialog_title позволяет определить пользовательский заголовок для диалогового окна. Это полезно, если вы хотите точно указать на назначение диалогового окна. Если параметр dialog_title является пустой строкой, в качестве заголовка по умолчанию будет использоваться «Создать новый базовый тип».

Параметр type_blocklist содержит список имен типов, и типы из этого списка будут скрыты из диалога создания.

Примечание: Попытка указать базовый тип в параметре type_blocklist скроет из диалога создания все типы, производные от базового типа.


void popup_dialog(dialog: Window, rect: Rect2i = Rect2i(0, 0, 0, 0)) 🔗

Выводит dialog в пользовательском интерфейсе редактора с помощью Window.popup_exclusive(). Диалог не должен иметь текущего родителя, в противном случае метод не сработает.

См. также Window.set_unparent_when_invisible().


void popup_dialog_centered(dialog: Window, minsize: Vector2i = Vector2i(0, 0)) 🔗

Выводит dialog в пользовательском интерфейсе редактора с помощью Window.popup_exclusive_centered(). Диалог не должен иметь текущего родителя, в противном случае метод не сработает.

См. также Window.set_unparent_when_invisible().


void popup_dialog_centered_clamped(dialog: Window, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75) 🔗

Выводит dialog в пользовательском интерфейсе редактора с помощью Window.popup_exclusive_centered_clamped(). Диалог не должен иметь текущего родителя, в противном случае метод не сработает.

См. также Window.set_unparent_when_invisible().


void popup_dialog_centered_ratio(dialog: Window, ratio: float = 0.8) 🔗

Выводит dialog в пользовательском интерфейсе редактора с помощью Window.popup_exclusive_centered_ratio(). Диалог не должен иметь текущего родителя, в противном случае метод не сработает.

См. также Window.set_unparent_when_invisible().


void popup_method_selector(object: Object, callback: Callable, current_value: String = "") 🔗

Открывает диалог редактора для выбора метода из object. callback должен принимать один аргумент типа String, который будет содержать имя выбранного метода или будет пустым, если диалог будет отменен. Если указано current_value, метод будет автоматически выбран в списке методов, если он существует.


void popup_node_selector(callback: Callable, valid_types: Array[StringName] = [], current_value: Node = null) 🔗

Открывает диалог редактора для выбора Node из редактируемой сцены. callback должен принимать один аргумент типа NodePath. Он вызывается для выбранного NodePath или пустого пути ^"", если диалог отменен. Если указан valid_types, диалог покажет только узлы, соответствующие одному из перечисленных типов узлов. Если указан current_value, узел будет автоматически выбран в дереве, если он существует.

Пример: Отобразить диалог выбора узла, как только этот узел будет добавлен в дерево в первый раз:

func _ready():
    if Engine.is_editor_hint():
        EditorInterface.popup_node_selector(_on_node_selected, ["Button"])

func _on_node_selected(node_path):
    if node_path.is_empty():
        print("node selection canceled")
    else:
        print("selected ", node_path)

void popup_property_selector(object: Object, callback: Callable, type_filter: PackedInt32Array = PackedInt32Array(), current_value: String = "") 🔗

Открывает диалог редактора для выбора свойств из object. callback должен принимать один аргумент типа NodePath. Он вызывается для выбранного пути свойства (см. NodePath.get_as_property_path()) или пустого пути ^"", если диалог отменен. Если указан type_filter, диалог покажет только свойства, которые соответствуют одному из перечисленных значений Variant.Type. Если указан current_value, свойство будет автоматически выбрано в списке свойств, если оно существует.

func _ready():
    if Engine.is_editor_hint():
        EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT])

func _on_property_selected(property_path):
    if property_path.is_empty():
        print("property selection canceled")
    else:
        print("selected ", property_path)

void popup_quick_open(callback: Callable, base_types: Array[StringName] = []) 🔗

Открывает диалог редактора для быстрого выбора файла ресурсов. callback должен принимать один аргумент типа String, который будет содержать путь к выбранному ресурсу или будет пустым, если диалог будет отменен. Если указан base_types, диалог покажет только ресурсы, соответствующие этим типам. Поддерживаются только типы, производные от Resource.


void reload_scene_from_path(scene_filepath: String) 🔗

Перезагружает сцену по указанному пути.


void restart_editor(save: bool = true) 🔗

Перезапускает редактор. Это закрывает редактор и затем открывает тот же проект. Если save равен true, проект будет сохранен перед перезапуском.


void save_all_scenes() 🔗

Сохраняет все открытые сцены в редакторе.


Error save_scene() 🔗

Сохраняет текущую активную сцену. Возвращает либо @GlobalScope.OK, либо @GlobalScope.ERR_CANT_CREATE.


void save_scene_as(path: String, with_preview: bool = true) 🔗

Сохраняет текущую активную сцену в виде файла по адресу path.


void select_file(file: String) 🔗

Выбирает файл с путем, указанным в file, в доке FileSystem.


void set_current_feature_profile(profile_name: String) 🔗

Выбирает и активирует указанный профиль функций с заданным profile_name. Установите profile_name на пустую строку, чтобы сбросить до профиля функций по умолчанию.

Профиль функций можно создать программно с помощью класса EditorFeatureProfile.

Примечание: Активируемый профиль функций должен находиться в каталоге feature_profiles в виде файла с расширением .profile. Если профиль не найден, возникает ошибка. Папку конфигурации редактора можно найти с помощью EditorPaths.get_config_dir().


void set_main_screen_editor(name: String) 🔗

Устанавливает текущий главный экран редактора на тот, который указан в name. name должен точно соответствовать заголовку соответствующей вкладки (например, 2D, 3D, Script, Game или AssetLib для вкладок по умолчанию).


void set_object_edited(object: Object, edited: bool) 🔗

Если edited равно true, объект помечается как отредактированный.

Примечание: Этот метод в основном используется редактором для объектов на основе Resource для отслеживания их измененного состояния. Например, любые изменения открытой сцены, ресурса в инспекторе или отредактированного скрипта приведут к вызову этого метода с true. Сохранение сцены, скрипта или ресурса сбрасывает состояние редактирования, вызывая этот метод с false.

Примечание: Каждый вызов этого метода увеличивает номер отредактированной версии объекта. Это используется для отслеживания изменений в редакторе и для запуска процесса перегенерации эскизов для ресурсов.


void set_plugin_enabled(plugin: String, enabled: bool) 🔗

Устанавливает включенный статус плагина. Имя плагина совпадает с именем его каталога.


void stop_playing_scene() 🔗

Останавливает текущую воспроизводимую сцену.