本文档解释了 Godot 编辑器的架构,详细介绍了其核心组件以及它们如何协同工作以提供集成开发环境。有关场景系统或渲染等特定编辑器功能的信息,请参阅文档中的相应部分。
Godot 编辑器本身是建立在 Godot 引擎之上的一个特殊场景。这意味着编辑器本质上是一个 Godot 应用程序,它提供了创建其他 Godot 应用程序的工具。其架构遵循模块化方法,一个中央编辑器节点协调各种子系统。
来源
EditorNode 类是编辑器架构的核心。它作为整个编辑器的主要入口点和控制器,负责初始化、管理和协调所有其他编辑器组件。
主要职责
来源
EditorData 类管理与正在编辑的场景相关的所有数据,包括:
来源
EditorSettings 类负责处理所有编辑器特定的设置、偏好和配置。这些设置与项目设置分开存储,并且仅影响编辑器的行为和外观。这些设置在不同项目之间是持久的。
主要功能
来源
编辑器的 UI 是使用 Godot 自有的 UI 工具包构建的。主布局包括面板、区域和一个中央编辑区域,所有这些都由 `EditorNode` 类进行管理。
来源
编辑器将工具组织成“面板”,这些面板可以重新排列、选项卡化并停靠在编辑器窗口的边缘。主要面板包括:
`EditorDockManager` 类管理这些面板、它们的放置和组织。
来源
编辑器启动时,它会遵循特定的初始化顺序来设置其组件。
来源
FileSystemDock 提供项目文件系统的树状视图和文件列表视图。它处理文件操作,如导入、移动、重命名以及创建新文件或文件夹。
主要功能
来源
SceneTreeDock 显示和管理场景层次结构。它提供了场景操作、节点创建和组织的工具。
主要功能
来源
InspectorDock 使用 `EditorInspector` 类显示并允许编辑当前选定节点或资源的属性。
来源
Godot 编辑器可以通过插件进行扩展。插件是继承自 `EditorPlugin` 类的脚本,可以为编辑器添加新功能。
插件可以:
编辑器通过 `EditorNode` 类中的 `editor_plugins` 和 `editor_plugins_over` 列表来管理插件。
来源
Godot 编辑器的 GUI 遵循特定的结构,各种 UI 元素以层次结构组织。
来源
编辑器使用 Godot 的主题系统进行外观定制。`EditorThemeManager` 根据颜色方案、图标集和缩放因子等设置生成编辑器主题。
来源
ProjectManager 类负责在编辑器打开之前列出、创建和管理项目。一旦选择了项目并打开了编辑器,`EditorNode` 就会接管。
EditorData 类有助于管理项目中的多个打开的场景。
来源
资产管理主要通过 `EditorFileSystem` 进行处理,该系统:
FileSystemDock 提供了用于浏览和管理这些资产的用户界面。
来源
资源通过一个可扩展的导入系统进行导入,该系统处理和优化外部资产以供引擎使用。
来源
编辑器使用专门的编辑界面来处理 2D(`CanvasItemEditor`)和 3D(`Node3DEditor`)内容。这些由 `EditorMainScreen` 类进行管理。
来源
编辑器通过 2D 编辑器提供 UI 元素的专用编辑工具,并为 Control 派生节点增加了额外功能。
Godot 编辑器架构由一个集中的 `EditorNode` 组成,该节点管理面板、区域、插件和编辑界面的系统。这种模块化设计允许灵活性和可扩展性,同时保持一致的用户体验。
编辑器本身被设计为一个 Godot 应用程序,使用了引擎自身的节点和场景系统,这展示了 Godot 引擎构建复杂应用程序的强大功能和灵活性。