Главное рабочее пространство через EditorDock
Актуальный MainScreen dock без старой схемы главного экрана.
Для самостоятельного рабочего пространства используйте EditorDock с DefaultSlot = EditorDock.DockSlot.MainScreen. Он регистрируется тем же AddDock(), что и боковая панель; не нужны старые callbacks _HasMainScreen() и _MakeVisible().
Полный пример
Создайте asset://addons/docs_workspace/, сохраните WorkspacePlugin.cs и plugin.cfg:
using Reckfell;
[Tool]
public partial class WorkspacePlugin : EditorPlugin
{
private EditorDock? _dock;
public override void _EnterTree()
{
_dock = new EditorDock { Name = "DocsWorkspaceDock", Title = "Docs workspace", DefaultSlot = EditorDock.DockSlot.MainScreen };
_dock.AddChild(new Label { Text = "A dedicated editor workspace" });
AddDock(_dock);
}
public override void _ExitTree()
{
if (_dock is not null) { RemoveDock(_dock); _dock.QueueFree(); _dock = null; }
}
}[plugin]
name="Docs workspace"
description="Main-screen EditorDock example"
author="Reckfell documentation"
version="1.0.0"
script="WorkspacePlugin.cs"Соберите C#-проект и включите дополнение в настройках плагинов. Откройте Docs workspace. В проверке панель находилась через EditorInterface.Singleton.GetDockByName("Docs workspace"); MakeVisible() переводил её в видимое состояние главного экрана.
Этот поиск использует отображаемый заголовок, а не имя каталога docs_workspace и не Name="DocsWorkspaceDock". Для своего кода предпочтительнее сохранённая ссылка на собственную панель. Если заголовок переводится, не используйте его как постоянный идентификатор данных проекта.
Очистка и границы ответственности
При отключении плагин вызывает RemoveDock() и QueueFree(). Повторное включение создаёт одну новую панель. Не добавляйте второй экземпляр в _Process() или при каждом выборе рабочего пространства.
MainScreen определяет размещение инструмента, а не запускает игру и не меняет редактируемую сцену. Если вашему инструменту нужна работа с выделением, ресурсами или изменением иерархии, реализуйте эти действия отдельно и добавьте UndoRedo там, где меняются данные проекта.
Выполнены регистрация MainScreen, поиск по заголовку, MakeVisible, проверка состояния видимости и очистка при повторном включении. Скриншоты, физическое переключение вкладок, пользовательские layouts, многомониторная работа и экспорт игры не проверялись.