reckfellENGINE

EditorPlugin

Используется редактором для расширения его функциональности.

На этой странице
class EditorPluginReckfellSharpEditorНаследует Entity

Используется редактором для расширения его функциональности.

Плагины используются редактором для расширения функциональности. Наиболее распространенными типами плагинов являются те, которые редактируют заданный узел или тип ресурса, импортируют плагины и экспортируют плагины. См. также EditorScript, чтобы добавить функции в редактор. Примечание: Некоторые имена в этом классе содержат «left» или «right» (например, EditorPlugin.DockSlot.LeftUl). Эти API предполагают расположение слева направо и будут обратными при использовании расположения справа налево. Эти имена сохранены из соображений совместимости.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

EditorPluginКонструктор
# EditorPlugin
C#
public EditorPlugin();

Методы78

AddAutoloadSingletonvoid
# AddAutoloadSingleton
C#
public void AddAutoloadSingleton(string name, string path);

Добавляет скрипт по адресу path в список автозагрузки как name.

Параметры
ИмяТипПо умолчанию
namestring—
pathstring—
AddContextMenuPluginvoid
# AddContextMenuPlugin
C#
public void AddContextMenuPlugin(EditorContextMenuPlugin.ContextMenuSlot slot, EditorContextMenuPlugin plugin);

Добавляет плагин в контекстное меню. slot — контекстное меню, в которое будет добавлен плагин. Примечание: Экземпляр плагина может принадлежать только одному слоту контекстного меню.

Параметры
ИмяТипПо умолчанию
slotEditorContextMenuPlugin.ContextMenuSlot—
pluginEditorContextMenuPlugin—
AddControlToBottomPanel2 перегрузки · Есть устаревшие
# AddControlToBottomPanel · 1/2
C#
public Button AddControlToBottomPanel(Control control, string title);

Добавить контроль к нижней панели (вместе с выходом, Дебагом, AnimationВозвращает ссылку на кнопку, которая находится вне дерева сцены. При необходимости вы должны спрятать/показывать кнопку. Когда ваш штепсель отключен, убедитесь, что снимите свой заказ. EditorPlugin.RemoveControlFromBottomPanel и освободить его с Entity.QueueFree. shortcut , это короткий путь, который при активации сжимает видимость нижней панели. Объект кратчайшего обзора установлен только тогда, когда этот орган управления добавлен в нижнюю панель. Примечание: Смотрите нижние панели редактора в параметрах редактора для вдохновения. [Кбд[Модификатор.

Параметры
ИмяТипПо умолчанию
controlControl—
titlestring—
Возвращает Button
# AddControlToBottomPanel · 2/2
C#
public Button AddControlToBottomPanel(Control control, string title, Shortcut shortcut = null);

Добавить контроль к нижней панели (вместе с выходом, Дебагом, AnimationВозвращает ссылку на кнопку, которая находится вне дерева сцены. При необходимости вы должны спрятать/показывать кнопку. Когда ваш штепсель отключен, убедитесь, что снимите свой заказ. EditorPlugin.RemoveControlFromBottomPanel и освободить его с Entity.QueueFree. shortcut , это короткий путь, который при активации сжимает видимость нижней панели. Объект кратчайшего обзора установлен только тогда, когда этот орган управления добавлен в нижнюю панель. Примечание: Смотрите нижние панели редактора в параметрах редактора для вдохновения. [Кбд[Модификатор.

Параметры
ИмяТипПо умолчанию
controlControl—
titlestring—
shortcutShortcutnull
Возвращает Button
AddControlToContainervoid
# AddControlToContainer
C#
public void AddControlToContainer(EditorPlugin.CustomControlContainer container, Control control);

Добавляет пользовательский элемент управления в контейнер в пользовательском интерфейсе редактора. Помните, что вам придется самостоятельно управлять видимостью ваших пользовательских элементов управления (и, скорее всего, скрывать их после добавления). Когда ваш плагин деактивирован, обязательно удалите пользовательский элемент управления с помощью EditorPlugin.RemoveControlFromContainer и освободите его с помощью Entity.QueueFree.

Параметры
ИмяТипПо умолчанию
containerEditorPlugin.CustomControlContainer—
controlControl—
AddControlToDock2 перегрузки · Есть устаревшие
# AddControlToDock · 1/2
C#
public void AddControlToDock(EditorPlugin.DockSlot slot, Control control);

Добавляет элемент управления в определенный слот дока. Если док перемещен и пока плагин активен, редактор сохранит позицию дока в последующих сеансах. Когда ваш плагин деактивирован, обязательно удалите свой пользовательский элемент управления с помощью EditorPlugin.RemoveControlFromDocks и освободите его с помощью Entity.QueueFree. При желании вы можете указать параметр сочетания клавиш. При нажатии сочетания клавиш откроет и сфокусирует док.

Параметры
ИмяТипПо умолчанию
slotEditorPlugin.DockSlot—
controlControl—
# AddControlToDock · 2/2
C#
public void AddControlToDock(EditorPlugin.DockSlot slot, Control control, Shortcut shortcut = null);

Добавляет элемент управления в определенный слот дока. Если док перемещен и пока плагин активен, редактор сохранит позицию дока в последующих сеансах. Когда ваш плагин деактивирован, обязательно удалите свой пользовательский элемент управления с помощью EditorPlugin.RemoveControlFromDocks и освободите его с помощью Entity.QueueFree. При желании вы можете указать параметр сочетания клавиш. При нажатии сочетания клавиш откроет и сфокусирует док.

Параметры
ИмяТипПо умолчанию
slotEditorPlugin.DockSlot—
controlControl—
shortcutShortcutnull
AddCustomTypevoid
# AddCustomType
C#
public void AddCustomType(string type, string @base, Script script, Texture2D icon);

Добавляет пользовательский тип, который появится в списке узлов или ресурсов. Когда выбран заданный узел или ресурс, будет создан экземпляр базового типа (например, "Entity3D", "Control", "Resource"), затем скрипт будет загружен и установлен для этого объекта. Примечание: Базовый тип — это базовый класс движка, который наследует иерархия классов этого типа, а не родительские классы пользовательских типов. Вы можете использовать виртуальный метод EditorPlugin._Handles, чтобы проверить, редактируется ли ваш пользовательский объект, проверив скрипт или используя ключевое слово is. Во время выполнения это будет простой объект со скриптом, поэтому эту функцию не нужно вызывать. Примечание: Пользовательские типы, добавленные таким образом, не являются настоящими классами. Они являются просто вспомогательными для создания узла с определенным скриптом.

Параметры
ИмяТипПо умолчанию
typestring—
basestring—
scriptScript—
iconTexture2D—
AddDebuggerPluginvoid
# AddDebuggerPlugin
C#
public void AddDebuggerPlugin(EditorDebuggerPlugin script);

Добавляет Script как плагин отладчика к Debugger. Скрипт должен расширять EditorDebuggerPlugin.

Параметры
ИмяТипПо умолчанию
scriptEditorDebuggerPlugin—
AddDockvoid
# AddDock
C#
public void AddDock(EditorDock dock);

Регистрирует собственный EditorDock в менеджере панелей редактора. Задайте Title и DefaultSlot до вызова; повторная регистрация того же объекта отклоняется. Для отключения нужны RemoveDock и освобождение своей панели.

Параметры
ИмяТипПо умолчанию
dockEditorDock—
dock

Созданная панель EditorDock. Для главного рабочего пространства пример использует DefaultSlot=MainScreen.

AddEntity3DGizmoPluginvoid
# AddEntity3DGizmoPlugin
C#
public void AddEntity3DGizmoPlugin(EditorEntity3DGizmoPlugin plugin);

Регистрирует обработчик 3D-гизмо. Сохраните экземпляр для снятия регистрации. В 1.0.0 добавление не гарантирует пересоздание гизмо уже открытой сцены; сохраните и переоткройте её при необходимости.

Параметры
ИмяТипПо умолчанию
pluginEditorEntity3DGizmoPlugin—
plugin

Экземпляр EditorEntity3DGizmoPlugin.

AddExportPlatformvoid
# AddExportPlatform
C#
public void AddExportPlatform(EditorExportPlatform platform);

Регистрирует новый EditorExportPlatform. Экспорт платформ обеспечивает функциональность экспорта на определенную платформу.

Параметры
ИмяТипПо умолчанию
platformEditorExportPlatform—
AddExportPluginvoid
# AddExportPlugin
C#
public void AddExportPlugin(EditorExportPlugin plugin);

Регистрирует новый EditorExportPlugin. Плагины экспорта используются для выполнения задач при экспорте проекта. См. EditorPlugin.AddInspectorPlugin для примера регистрации плагина.

Параметры
ИмяТипПо умолчанию
pluginEditorExportPlugin—
AddImportPluginvoid
# AddImportPlugin
C#
public void AddImportPlugin(EditorImportPlugin importer, bool firstPriority = false);

Регистрирует импортёр ресурсов редактора. Сохраните ссылку, чтобы снять регистрацию при выключении плагина. После первого сканирования регистрация планирует новое сканирование отложенным вызовом.

Параметры
ИмяТипПо умолчанию
importerEditorImportPlugin—
firstPriorityboolfalse
importer

Экземпляр пользовательского EditorImportPlugin.

firstPriority

Вставить импортёр в начало списка регистрации. Численный _GetPriority() всё равно участвует в выборе; по умолчанию false.

AddInspectorPluginvoid
# AddInspectorPlugin
C#
public void AddInspectorPlugin(EditorInspectorPlugin plugin);

Регистрирует ref-counted Inspector-плагин. Для уже открытого объекта может потребоваться повторный разбор/перевыбор: регистрация сама не перестраивает все существующие поля.

Параметры
ИмяТипПо умолчанию
pluginEditorInspectorPlugin—
plugin

Экземпляр EditorInspectorPlugin, который затем снимается тем же объектом через RemoveInspectorPlugin.

AddResourceConversionPluginvoid
# AddResourceConversionPlugin
C#
public void AddResourceConversionPlugin(EditorResourceConversionPlugin plugin);

Новые регистры EditorResourceConversionPlugin. Resource Преобразования используются для добавления заказных преобразователей ресурсов в инспектора редактора. Смотрите. EditorResourceConversionPlugin для примера того, как создать преобразователь ресурсов.

Параметры
ИмяТипПо умолчанию
pluginEditorResourceConversionPlugin—
AddSceneFormatImporterPluginvoid
# AddSceneFormatImporterPlugin
C#
public void AddSceneFormatImporterPlugin(EditorSceneFormatImporter sceneFormatImporter, bool firstPriority = false);

Регистрирует новый EditorSceneFormatImporter. Импортеры сцен используются для импорта пользовательских форматов 3D-ресурсов в качестве сцен. Если first_priority равен true, новый плагин импорта вставляется первым в списке и имеет приоритет над уже существующими плагинами.

Параметры
ИмяТипПо умолчанию
sceneFormatImporterEditorSceneFormatImporter—
firstPriorityboolfalse
AddScenePostImportPluginvoid
# AddScenePostImportPlugin
C#
public void AddScenePostImportPlugin(EditorScenePostImportPlugin sceneImportPlugin, bool firstPriority = false);

Добавьте EditorScenePostImportPlugin. Эти плагины позволяют настраивать процесс импорта 3D-ресурсов, добавляя новые параметры в диалоговые окна импорта. Если first_priority равен true, новый плагин импорта вставляется первым в списке и имеет приоритет над уже существующими плагинами.

Параметры
ИмяТипПо умолчанию
sceneImportPluginEditorScenePostImportPlugin—
firstPriorityboolfalse
AddToolMenuItemvoid
# AddToolMenuItem
C#
public void AddToolMenuItem(string name, Callable callable);

Добавляет команду в меню инструментов проекта. Зарегистрируйте один раз при входе плагина и удалите при выходе. Повторная регистрация по имени сама по себе не заменяет прежний пункт.

Параметры
ИмяТипПо умолчанию
namestring—
callableCallable—
name

Имя пункта, которое затем передаётся RemoveToolMenuItem. Выберите достаточно уникальное имя.

callable

Обработчик команды, например Callable.From(InspectLevel). В примере он только читает открытую иерархию.

AddToolSubmenuItemvoid
# AddToolSubmenuItem
C#
public void AddToolSubmenuItem(string name, PopupMenu submenu);

Добавляет пользовательское подменю PopupMenu в Проект > Инструменты > name. Используйте EditorPlugin.RemoveToolMenuItem при очистке плагина, чтобы удалить меню.

Параметры
ИмяТипПо умолчанию
namestring—
submenuPopupMenu—
AddTranslationParserPluginvoid
# AddTranslationParserPlugin
C#
public void AddTranslationParserPlugin(EditorTranslationParserPlugin parser);

Регистрирует пользовательский плагин анализатора перевода для извлечения переводимых строк из пользовательских файлов.

Параметры
ИмяТипПо умолчанию
parserEditorTranslationParserPlugin—
AddUndoRedoInspectorHookCallbackvoid
# AddUndoRedoInspectorHookCallback
C#
public void AddUndoRedoInspectorHookCallback(Callable callable);

Подключает обратный вызов к созданию действия отмены/повтора при изменении свойства в инспекторе. Это позволяет, например, сохранять другие свойства, которые могут быть потеряны при изменении данного свойства. Обратный вызов должен иметь 4 аргумента: ReckfellObject undo_redo, ReckfellObject modified_object, string property и Variant new_value. Это, соответственно, объект UndoRedo, используемый инспектором, текущий измененный объект, имя измененного свойства и новое значение, которое свойство собирается принять.

Параметры
ИмяТипПо умолчанию
callableCallable—
GetEditorInterfaceEditorInterface · Устарело
# GetEditorInterface
C#
public EditorInterface GetEditorInterface();

Возвращает экземпляр синглтона EditorInterface.

Возвращает EditorInterface
GetExportAsMenuPopupMenu
# GetExportAsMenu
C#
public PopupMenu GetExportAsMenu();

Возвращает PopupMenu в разделе Сцена > Экспортировать как....

Возвращает PopupMenu
GetPluginVersionstring
# GetPluginVersion
C#
public string GetPluginVersion();

Укажите версию плагина, объявленную в файле конфигурации plugin.cfg.

Возвращает string
GetScriptCreateDialogScriptCreateDialog
# GetScriptCreateDialog
C#
public ScriptCreateDialog GetScriptCreateDialog();

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

Возвращает ScriptCreateDialog
GetUndoRedoEditorUndoRedoManager
# GetUndoRedo
C#
public EditorUndoRedoManager GetUndoRedo();

Получает объект отмены/повтора. Большинство действий в редакторе можно отменить, поэтому используйте этот объект, чтобы убедиться, что это произойдет, когда это того стоит.

Возвращает EditorUndoRedoManager
HideBottomPanelvoid
# HideBottomPanel
C#
public void HideBottomPanel();

Сворачивает нижнюю панель.

MakeBottomPanelItemVisiblevoid
# MakeBottomPanelItemVisible
C#
public void MakeBottomPanelItemVisible(Control item);

Делает видимым определенный элемент на нижней панели.

Параметры
ИмяТипПо умолчанию
itemControl—
QueueSaveLayoutvoid
# QueueSaveLayout
C#
public void QueueSaveLayout();

Очередь сохранения макета редактора проекта.

RemoveAutoloadSingletonvoid
# RemoveAutoloadSingleton
C#
public void RemoveAutoloadSingleton(string name);

Удаляет автозагрузку name из списка.

Параметры
ИмяТипПо умолчанию
namestring—
RemoveContextMenuPluginvoid
# RemoveContextMenuPlugin
C#
public void RemoveContextMenuPlugin(EditorContextMenuPlugin plugin);

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

Параметры
ИмяТипПо умолчанию
pluginEditorContextMenuPlugin—
RemoveControlFromBottomPanelvoid · Устарело
# RemoveControlFromBottomPanel
C#
public void RemoveControlFromBottomPanel(Control control);

Удаляет элемент управления с нижней панели. Вам придется вручную Entity.QueueFree элемент управления.

Параметры
ИмяТипПо умолчанию
controlControl—
RemoveControlFromContainervoid
# RemoveControlFromContainer
C#
public void RemoveControlFromContainer(EditorPlugin.CustomControlContainer container, Control control);

Удаляет элемент управления из указанного контейнера. Вам необходимо вручную Entity.QueueFree элемент управления.

Параметры
ИмяТипПо умолчанию
containerEditorPlugin.CustomControlContainer—
controlControl—
RemoveControlFromDocksvoid · Устарело
# RemoveControlFromDocks
C#
public void RemoveControlFromDocks(Control control);

Удаляет элемент управления из дока. Вам придется вручную Entity.QueueFree элемент управления.

Параметры
ИмяТипПо умолчанию
controlControl—
RemoveCustomTypevoid
# RemoveCustomType
C#
public void RemoveCustomType(string type);

Удаляет пользовательский тип, добавленный EditorPlugin.AddCustomType.

Параметры
ИмяТипПо умолчанию
typestring—
RemoveDebuggerPluginvoid
# RemoveDebuggerPlugin
C#
public void RemoveDebuggerPlugin(EditorDebuggerPlugin script);

Удаляет плагин отладчика с указанным скриптом из отладчика.

Параметры
ИмяТипПо умолчанию
scriptEditorDebuggerPlugin—
RemoveDockvoid
# RemoveDock
C#
public void RemoveDock(EditorDock dock);

Снимает регистрацию панели и отсоединяет её от менеджера. Сам объект не освобождается: для принадлежащей плагину панели отдельно вызовите QueueFree.

Параметры
ИмяТипПо умолчанию
dockEditorDock—
dock

Та же зарегистрированная панель, которую добавил ваш плагин. Не удаляйте панели других расширений.

RemoveEntity3DGizmoPluginvoid
# RemoveEntity3DGizmoPlugin
C#
public void RemoveEntity3DGizmoPlugin(EditorEntity3DGizmoPlugin plugin);

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

Параметры
ИмяТипПо умолчанию
pluginEditorEntity3DGizmoPlugin—
plugin

Ранее зарегистрированный обработчик.

RemoveExportPlatformvoid
# RemoveExportPlatform
C#
public void RemoveExportPlatform(EditorExportPlatform platform);

Удаляет экспортную платформу, зарегистрированную EditorPlugin.AddExportPlatform.

Параметры
ИмяТипПо умолчанию
platformEditorExportPlatform—
RemoveExportPluginvoid
# RemoveExportPlugin
C#
public void RemoveExportPlugin(EditorExportPlugin plugin);

Удаляет плагин экспорта, зарегистрированный EditorPlugin.AddExportPlugin.

Параметры
ИмяТипПо умолчанию
pluginEditorExportPlugin—
RemoveImportPluginvoid
# RemoveImportPlugin
C#
public void RemoveImportPlugin(EditorImportPlugin importer);

Снимает регистрацию ранее добавленного импортёра. Затем освободите собственную ссылку; не удаляйте пользовательские исходные файлы. Существующий кэш не заменяет импортёр при необходимости пересоздать результат.

Параметры
ИмяТипПо умолчанию
importerEditorImportPlugin—
importer

Тот же экземпляр, который был передан в AddImportPlugin().

RemoveInspectorPluginvoid
# RemoveInspectorPlugin
C#
public void RemoveInspectorPlugin(EditorInspectorPlugin plugin);

Снимает регистрацию Inspector-плагина. Не обещает автоматически удалить уже созданные виджеты всех Inspector; пример отдельно перестраивает главный Inspector своего ресурса, затем освобождает свою ref-counted ссылку.

Параметры
ИмяТипПо умолчанию
pluginEditorInspectorPlugin—
plugin

Тот же зарегистрированный экземпляр. Не применяйте к ref-counted плагину QueueFree, предназначенный для Entity.

RemoveResourceConversionPluginvoid
# RemoveResourceConversionPlugin
C#
public void RemoveResourceConversionPlugin(EditorResourceConversionPlugin plugin);

Удаляет плагин преобразования ресурсов, зарегистрированный EditorPlugin.AddResourceConversionPlugin.

Параметры
ИмяТипПо умолчанию
pluginEditorResourceConversionPlugin—
RemoveSceneFormatImporterPluginvoid
# RemoveSceneFormatImporterPlugin
C#
public void RemoveSceneFormatImporterPlugin(EditorSceneFormatImporter sceneFormatImporter);

Удаляет импортер формата сцены, зарегистрированный EditorPlugin.AddSceneFormatImporterPlugin.

Параметры
ИмяТипПо умолчанию
sceneFormatImporterEditorSceneFormatImporter—
RemoveScenePostImportPluginvoid
# RemoveScenePostImportPlugin
C#
public void RemoveScenePostImportPlugin(EditorScenePostImportPlugin sceneImportPlugin);

Удалите EditorScenePostImportPlugin, добавленный с помощью EditorPlugin.AddScenePostImportPlugin.

Параметры
ИмяТипПо умолчанию
sceneImportPluginEditorScenePostImportPlugin—
RemoveToolMenuItemvoid
# RemoveToolMenuItem
C#
public void RemoveToolMenuItem(string name);

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

Параметры
ИмяТипПо умолчанию
namestring—
name

То же имя, переданное AddToolMenuItem.

RemoveTranslationParserPluginvoid
# RemoveTranslationParserPlugin
C#
public void RemoveTranslationParserPlugin(EditorTranslationParserPlugin parser);

Удаляет пользовательский плагин парсера перевода, зарегистрированный EditorPlugin.AddTranslationParserPlugin.

Параметры
ИмяТипПо умолчанию
parserEditorTranslationParserPlugin—
RemoveUndoRedoInspectorHookCallbackvoid
# RemoveUndoRedoInspectorHookCallback
C#
public void RemoveUndoRedoInspectorHookCallback(Callable callable);

Удаляет обратный вызов, ранее добавленный EditorPlugin.AddUndoRedoInspectorHookCallback.

Параметры
ИмяТипПо умолчанию
callableCallable—
SetDockTabIconvoid · Устарело
# SetDockTabIcon
C#
public void SetDockTabIcon(Control control, Texture2D icon);

Устанавливает значок вкладки для указанного элемента управления в слоте дока. Установка null удаляет значок.

Параметры
ИмяТипПо умолчанию
controlControl—
iconTexture2D—
SetForceDrawOverForwardingEnabledvoid
# SetForceDrawOverForwardingEnabled
C#
public void SetForceDrawOverForwardingEnabled();

Позволяет вызывать EditorPlugin._ForwardCanvasForceDrawOverViewport для 2D-редактора и EditorPlugin._Forward3DForceDrawOverViewport для 3D-редактора при обновлении их вьюпортов. Вам нужно вызвать этот метод только один раз, и он будет работать постоянно для этого плагина.

SetInputEventForwardingAlwaysEnabledvoid
# SetInputEventForwardingAlwaysEnabled
C#
public void SetInputEventForwardingAlwaysEnabled();

Используйте этот метод, если вы всегда хотите получать входные данные с экрана 3D-вида внутри EditorPlugin._Forward3DGuiInput. Он может быть особенно полезен, если ваш плагин захочет использовать raycast в сцене.

UpdateOverlaysint
# UpdateOverlays
C#
public int UpdateOverlays();

Обновляет наложения вьюпорта 2D- и 3D-редактора. Вызывает вызов методов EditorPlugin._ForwardCanvasDrawOverViewport, EditorPlugin._ForwardCanvasForceDrawOverViewport, EditorPlugin._Forward3DDrawOverViewport и EditorPlugin._Forward3DForceDrawOverViewport.

Возвращает int
_ApplyChangesvoid
# _ApplyChanges
C#
public virtual void _ApplyChanges();

Этот метод вызывается, когда редактор собирается сохранить проект, переключиться на другую вкладку и т. д. Он просит плагин применить любые отложенные изменения состояния, чтобы обеспечить согласованность. Это используется, например, в редакторах шейдеров, чтобы дать плагину знать, что он должен применить код шейдера, написанный пользователем, к объекту.

_Buildbool
# _Build
C#
public virtual bool _Build();

Этот метод вызывается, когда редактор собирается запустить проект. Затем плагин может выполнить требуемые операции перед запуском проекта. Этот метод должен возвращать логическое значение. Если этот метод возвращает false, проект не будет запущен. Запуск немедленно прерывается, поэтому это также предотвращает запуск всех методов EditorPlugin._Build других плагинов.

Возвращает bool
_Clearvoid
# _Clear
C#
public virtual void _Clear();

Очистите все состояния и сбросьте редактируемый объект на ноль. Это гарантирует, что ваш плагин не будет продолжать редактировать существующий узел или узел из неправильной сцены.

_DisablePluginvoid
# _DisablePlugin
C#
public virtual void _DisablePlugin();

Вызывается движком, когда пользователь отключает EditorPlugin на вкладке «Плагин» окна настроек проекта.

_Editvoid
# _Edit
C#
public virtual void _Edit(ReckfellObject @object);

Эта функция используется для плагинов, которые редактируют определенные типы объектов (узлы или ресурсы). Она запрашивает редактор для редактирования указанного объекта. object может быть null, если плагин редактировал объект, но больше нет выбранного объекта, обрабатываемого этим плагином. Его можно использовать для очистки состояния редактирования.

Параметры
ИмяТипПо умолчанию
objectReckfellObject—
_EnablePluginvoid
# _EnablePlugin
C#
public virtual void _EnablePlugin();

Вызывается движком, когда пользователь включает EditorPlugin на вкладке «Плагин» окна настроек проекта.

_Forward3DDrawOverViewportvoid
# _Forward3DDrawOverViewport
C#
public virtual void _Forward3DDrawOverViewport(Control viewportControl);

Вызывается движком при обновлении области просмотра 3D-редактора. viewport_control — это наложение поверх области просмотра, которое можно использовать для рисования. Обновить область просмотра можно вручную, вызвав EditorPlugin.UpdateOverlays.

C#
public override void _Forward3DDrawOverViewport(Control viewportControl)
{
    // Draw a circle at the cursor's position.
    viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, Colors.White);
}

public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D viewportCamera, InputEvent @event)
{
    if (@event is InputEventMouseMotion)
    {
        // Redraw the viewport when the cursor is moved.
        UpdateOverlays();
        return EditorPlugin.AfterGuiInput.Stop;
    }
    return EditorPlugin.AfterGuiInput.Pass;
}
Параметры
ИмяТипПо умолчанию
viewportControlControl—
_Forward3DForceDrawOverViewportvoid
# _Forward3DForceDrawOverViewport
C#
public virtual void _Forward3DForceDrawOverViewport(Control viewportControl);

Этот метод такой же, как EditorPlugin._Forward3DDrawOverViewport, за исключением того, что он рисует поверх всего. Полезно, когда вам нужен дополнительный слой, который отображается поверх всего остального. Вам нужно включить вызов этого метода с помощью EditorPlugin.SetForceDrawOverForwardingEnabled.

Параметры
ИмяТипПо умолчанию
viewportControlControl—
_Forward3DGuiInputint
# _Forward3DGuiInput
C#
public virtual int _Forward3DGuiInput(Camera3D viewportCamera, InputEvent @event);

Вызывается, когда в текущей редактируемой сцене есть корневой узел, реализуется EditorPlugin._Handles, и в окне 3D-просмотра происходит InputEvent. Возвращаемое значение определяет, будет ли InputEvent использован или перенаправлен другим EditorPlugin. См. EditorPlugin.AfterGuiInput для опций.

C#
// Prevents the InputEvent from reaching other Editor classes.
public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event)
{
    return EditorPlugin.AfterGuiInput.Stop;
}

Этот метод должен возвращать EditorPlugin.AfterGuiInput.Pass для пересылки InputEvent другим классам редактора.

C#
// Consumes InputEventMouseMotion and forwards other InputEvent types.
public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event)
{
    return @event is InputEventMouseMotion ? EditorPlugin.AfterGuiInput.Stop : EditorPlugin.AfterGuiInput.Pass;
}
Параметры
ИмяТипПо умолчанию
viewportCameraCamera3D—
eventInputEvent—
Возвращает int
_ForwardCanvasDrawOverViewportvoid
# _ForwardCanvasDrawOverViewport
C#
public virtual void _ForwardCanvasDrawOverViewport(Control viewportControl);

Вызывается движком при обновлении области просмотра 2D-редактора. viewport_control — это наложение поверх области просмотра, которое можно использовать для рисования. Обновить область просмотра можно вручную, вызвав EditorPlugin.UpdateOverlays.

C#
public override void _ForwardCanvasDrawOverViewport(Control viewportControl)
{
    // Draw a circle at the cursor's position.
    viewportControl.DrawCircle(viewportControl.GetLocalMousePosition(), 64, Colors.White);
}

public override bool _ForwardCanvasGuiInput(InputEvent @event)
{
    if (@event is InputEventMouseMotion)
    {
        // Redraw the viewport when the cursor is moved.
        UpdateOverlays();
        return true;
    }
    return false;
}
Параметры
ИмяТипПо умолчанию
viewportControlControl—
_ForwardCanvasForceDrawOverViewportvoid
# _ForwardCanvasForceDrawOverViewport
C#
public virtual void _ForwardCanvasForceDrawOverViewport(Control viewportControl);

Этот метод такой же, как EditorPlugin._ForwardCanvasDrawOverViewport, за исключением того, что он рисует поверх всего. Полезно, когда вам нужен дополнительный слой, который отображается поверх всего остального. Вам нужно включить вызов этого метода с помощью EditorPlugin.SetForceDrawOverForwardingEnabled.

Параметры
ИмяТипПо умолчанию
viewportControlControl—
_ForwardCanvasGuiInputbool
# _ForwardCanvasGuiInput
C#
public virtual bool _ForwardCanvasGuiInput(InputEvent @event);

Вызывается, когда в текущей редактируемой сцене есть корневой узел, реализуется EditorPlugin._Handles, и в 2D-окне просмотра происходит InputEvent. Если этот метод возвращает true, event перехватывается этим EditorPlugin, в противном случае event пересылается другим классам Editor.

C#
// Prevents the InputEvent from reaching other Editor classes.
public override bool ForwardCanvasGuiInput(InputEvent @event)
{
    return true;
}

Этот метод должен возвращать false, чтобы переслать InputEvent другим классам редактора.

C#
// Consumes InputEventMouseMotion and forwards other InputEvent types.
public override bool _ForwardCanvasGuiInput(InputEvent @event)
{
    if (@event is InputEventMouseMotion)
    {
        return true;
    }
    return false;
}
Параметры
ИмяТипПо умолчанию
eventInputEvent—
Возвращает bool
_GetBreakpointsstring[]
# _GetBreakpoints
C#
public virtual string[] _GetBreakpoints();

Это для редакторов, которые редактируют объекты на основе сценария. Вы можете вернуть список точек в формате ()script:line), например: asset://path_to_script.cs:25.

#######pugin_icon

Возвращает string[]
_GetPluginIconTexture2D · Устарело
# _GetPluginIcon
C#
public virtual Texture2D _GetPluginIcon();

Переопределите этот метод в вашем плагине, чтобы он возвращал Texture2D и добавлял значок. Для плагинов, размещаемых на главном экране, значок отображается в верхней части экрана, справа от кнопок «2D», «3D», «Script», «Game» и «Хранение активов». В идеале значок плагина должен быть белым с прозрачным фоном и размером 16×16 пикселей.

C#
public override Texture2D _GetPluginIcon()
{
    // You can use a custom icon:
    return ResourceLoader.Load<Texture2D>("asset://addons/my_plugin/my_plugin_icon.svg");
    // Or use a built-in icon:
    return EditorInterface.Singleton.GetEditorTheme().GetIcon("Entity", "EditorIcons");
}
Возвращает Texture2D
_GetPluginNamestring
# _GetPluginName
C#
public virtual string _GetPluginName();

Отменить этот метод в вашем модификаторе, чтобы указать имя лейбина, когда он показан в редакторе Reckfell. В случае главных экранов это появляется в верхней части экрана, справа от "2D", "3D",".Script", "Игра", и кнопки "Ассет Сокровище". Примечание: Вместо этого следует использовать основные экраны EditorDock.Title главного экранного дока.

Возвращает string
_GetStateReckfell.Collections.Dictionary
# _GetState
C#
public virtual Reckfell.Collections.Dictionary _GetState();

Переопределите этот метод, чтобы предоставить данные о состоянии, которые необходимо сохранить, например, положение вида, настройки сетки, сворачивание и т. д. Это используется при сохранении сцены (чтобы состояние сохранялось при её повторном открытии) и для переключения вкладок (чтобы состояние можно было восстановить при возврате вкладки). Эти данные автоматически сохраняются для каждой сцены в файле editstate в папке метаданных редактора. Если вы хотите сохранить глобальные (независимые от сцены) данные редактора для своего плагина, вы можете использовать EditorPlugin._GetWindowLayout. Используйте EditorPlugin._SetState для восстановления сохранённого состояния. Примечание: Этот метод не следует использовать для сохранения важных настроек, которые должны сохраняться в проекте. Примечание: Для корректного сохранения и восстановления состояния необходимо реализовать EditorPlugin._GetPluginName.

####### get_unsaved_ Status

Возвращает Reckfell.Collections.Dictionary
_GetUnsavedStatusstring
# _GetUnsavedStatus
C#
public virtual string _GetUnsavedStatus(string forScene);

Переопределите этот метод, чтобы предоставить пользовательское сообщение, в котором перечислены несохраненные изменения. Редактор вызовет этот метод при выходе или закрытии сцены и отобразит возвращенную строку в диалоговом окне подтверждения. Возвращает пустую строку, если у плагина нет несохраненных изменений. При закрытии сцены for_scene — это путь к закрываемой сцене. Вы можете использовать его для обработки встроенных ресурсов в этой сцене. Если пользователь подтверждает сохранение, перед закрытием редактора будет вызван EditorPlugin._SaveExternalData.

Если плагин не имеет изменений, специфичных для сцены, вы можете игнорировать вызовы при закрытии сцен:

Параметры
ИмяТипПо умолчанию
forScenestring—
Возвращает string
_GetWindowLayoutvoid
# _GetWindowLayout
C#
public virtual void _GetWindowLayout(ConfigFile configuration);

Переопределите этот метод, чтобы предоставить макет GUI плагина или любые другие данные, которые вы хотите сохранить. Это используется для сохранения макета редактора проекта при вызове EditorPlugin.QueueSaveLayout или изменении макета редактора (например, при изменении положения дока). Данные сохраняются в файле editor_layout.cfg в каталоге метаданных редактора. Используйте EditorPlugin._SetWindowLayout, чтобы восстановить сохраненный макет.

Параметры
ИмяТипПо умолчанию
configurationConfigFile—
_Handlesbool
# _Handles
C#
public virtual bool _Handles(ReckfellObject @object);

Включите эту функцию, если вы редактируете конкретный тип объекта ().Resource или Entity) В случае возвращения true, тогда вы получите функции EditorPlugin._Edit и EditorPlugin._MakeVisible Позвонил, когда их запросит редактор. Если вы указали методы EditorPlugin._ForwardCanvasGuiInput и EditorPlugin._Forward3DGuiInput Это тоже будет называться. Примечание: Каждый штемпель должен одновременно работать только с одним типом объектов. Если штепсель работает с несколькими типами объектов и они отредактируются одновременно, это приведет к ошибкам.

Параметры
ИмяТипПо умолчанию
objectReckfellObject—
Возвращает bool
_HasMainScreenbool · Устарело
# _HasMainScreen
C#
public virtual bool _HasMainScreen();

Возвращение true если это главный редактор экрана bigin (он проходит в выбранном рабочем пространстве вместе с 2D, 3D, Script, Игра, и Хранение активов). Вы можете добавить главный экранный док с помощью EditorDock при этом EditorDock.DockLayout.MainScreen в качестве имеющегося формата.

Возвращает bool
_MakeVisiblevoid
# _MakeVisible
C#
public virtual void _MakeVisible(bool visible);

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

Параметры
ИмяТипПо умолчанию
visiblebool—
_RunScenestring[]
# _RunScene
C#
public virtual string[] _RunScene(string scene, string[] args);

Эта функция вызывается, когда в редакторе собирается воспроизвестись отдельная сцена. args — это список аргументов командной строки, которые будут переданы новому экземпляру Reckfell; этот список будет заменен списком, возвращаемым этой функцией.

Примечание: Текст, выводимый этим методом, не будет виден на панели вывода редактора, если параметр EditorSettings.run/output/always_clear_output_on_play не имеет значения false.

####_спасение_внешние_данные

Параметры
ИмяТипПо умолчанию
scenestring—
argsstring[]—
Возвращает string[]
_SaveExternalDatavoid
# _SaveExternalData
C#
public virtual void _SaveExternalData();

Этот метод вызывается после того, как редактор сохраняет проект или когда он закрыт. Он просит плагин сохранить отредактированные внешние сцены/ресурсы.

_SetStatevoid
# _SetState
C#
public virtual void _SetState(Reckfell.Collections.Dictionary state);

Восстановите состояние, сохраненное EditorPlugin._GetState. Этот метод вызывается при изменении текущей вкладки сцены в редакторе. Примечание: Ваш плагин должен реализовывать EditorPlugin._GetPluginName, иначе он не будет распознан и этот метод не будет вызван.

Параметры
ИмяТипПо умолчанию
stateReckfell.Collections.Dictionary—
_SetWindowLayoutvoid
# _SetWindowLayout
C#
public virtual void _SetWindowLayout(ConfigFile configuration);

Восстановите макет GUI плагина и данные, сохраненные EditorPlugin._GetWindowLayout. Этот метод вызывается для каждого плагина при запуске редактора. Используйте предоставленный файл configuration для чтения сохраненных данных.

Параметры
ИмяТипПо умолчанию
configurationConfigFile—

Сигналы и события6

MainScreenChangedСобытие
# MainScreenChanged
C#
public event EditorPlugin.MainScreenChangedEventHandler MainScreenChanged;

Генерируется при изменении пользователем рабочего пространства (2D, 3D, Script, Game, Хранение активов). Также работает с пользовательскими экранами, определенными плагинами.

Параметры обработчика
ИмяТипПо умолчанию
screenNamestring—
ProjectSettingsChangedСобытие · Устарело
# ProjectSettingsChanged
C#
public event Action ProjectSettingsChanged;

Генерируется при изменении каких-либо настроек проекта.

ResourceSavedСобытие
# ResourceSaved
C#
public event EditorPlugin.ResourceSavedEventHandler ResourceSaved;

Выдается, когда заданный resource был сохранен на диске. См. также EditorPlugin.SceneSaved.

Параметры обработчика
ИмяТипПо умолчанию
resourceResource—
SceneChangedСобытие
# SceneChanged
C#
public event EditorPlugin.SceneChangedEventHandler SceneChanged;

Выдается при изменении сцены в редакторе. Аргумент вернет корневой узел сцены, которая только что стала активной. Если эта сцена новая и пустая, аргумент будет null.

Параметры обработчика
ИмяТипПо умолчанию
sceneRootEntity—
SceneClosedСобытие
# SceneClosed
C#
public event EditorPlugin.SceneClosedEventHandler SceneClosed;

Вызывается, когда пользователь закрывает сцену. Аргумент — путь к файлу закрытой сцены.

Параметры обработчика
ИмяТипПо умолчанию
filepathstring—
SceneSavedСобытие
# SceneSaved
C#
public event EditorPlugin.SceneSavedEventHandler SceneSaved;

Выдается при сохранении сцены на диске. Аргумент — путь к файлу сохраненной сцены. См. также EditorPlugin.ResourceSaved.

Параметры обработчика
ИмяТипПо умолчанию
filepathstring—

EditorPlugin.AfterGuiInput

ЗначениеОписание
Custom = 2

Передайте InputEvent другим плагинам редактора, кроме основного Entity3D. Это можно использовать для предотвращения изменений выбора узлов и работы с под-gizmos.

Pass = 0

Пересылает InputEvent другим EditorPlugins.

Stop = 1

Предотвращает доступ InputEvent к другим классам редактора.

EditorPlugin.CustomControlContainer

ЗначениеОписание
CanvasEditorBottom = 8

Нижняя панель 2D-редактора.

CanvasEditorMenu = 5

Панель инструментов, которая появляется при активном 2D-редакторе.

CanvasEditorSideLeft = 6

Левая боковая панель 2D-редактора.

CanvasEditorSideRight = 7

Правая боковая панель 2D-редактора.

InspectorBottom = 9

Нижняя часть инспектора.

ProjectSettingTabLeft = 10

Вкладка диалогового окна «Параметры проекта», слева от других вкладок.

ProjectSettingTabRight = 11

Вкладка диалогового окна «Параметры проекта», справа от других вкладок.

SpatialEditorBottom = 4

Нижняя панель 3D-редактора.

SpatialEditorMenu = 1

Панель инструментов, которая появляется при активном 3D-редакторе.

SpatialEditorSideLeft = 2

Левая боковая панель 3D-редактора.

SpatialEditorSideRight = 3

Правая боковая панель 3D-редактора.

Toolbar = 0

Основная панель инструментов редактора, рядом с кнопками воспроизведения.

EditorPlugin.DockSlot

ЗначениеОписание
Bottom = 8

Нижняя панель.

LeftBl = 1

Слот для док-станции, левая сторона, внизу слева (в макете по умолчанию пуст).

LeftBr = 3

Слева, справа от донной части (в по умолчанию включает просмотр контента).

LeftUl = 0

Слот для док-станции, левая сторона, вверху слева (в макете по умолчанию пуст).

LeftUr = 2

Слот док-станции, левая сторона, вверху справа (в макете по умолчанию включены док-станции «Сцена» и «Импорт»).

Max = 9

Представляет размер перечисления EditorPlugin.DockSlot.

None = -1

Док-панель закрыта.

RightBl = 5

Слот для док-станции, правая сторона, левый нижний угол (в макете по умолчанию пуст).

RightBr = 7

Слот для док-станции, справа, внизу справа (в макете по умолчанию пуст).

RightUl = 4

Дробовое сечение, справа, с верхней левой стороны (в модели по умолчанию включает инспектора, Entity, и History доки).

RightUr = 6

Слот для док-станции, правая сторона, вверху справа (пустой в макете по умолчанию).

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.