Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Introducción al desarrollo del editor¶
En esta pagina aprenderás:
Las decisiones de diseño detrás del editor de Godot.
Cómo trabajar eficientemente en el código C++ del editor de Godot.
Esta guía está dirigida a los colaboradores actuales o futuros del motor de Godot. Para crear complementos de editor en GDScript, consulta Creando plugins en su lugar.
Ver también
Si eres nuevo en Godot, te recomendamos que leas Filosofía del diseño de Godot antes de continuar. Dado que el editor de Godot es un proyecto de Godot escrito en C++, gran parte de la filosofía del motor se aplica al editor también.
Elecciones tecnicas¶
The Godot editor is drawn using Godot's renderer and UI system. It does not rely on a toolkit such as GTK or Qt. This is similar in spirit to software like Blender. While using toolkits makes it easier to achieve a "native" appearance, they are also quite heavy and their licensing is not compatible with Godot's.
El editor está completamente escrito en C++. No puede contener ningún código GDScript o C#.
Estructura de directorios¶
El código del editor está completamente contenido en la carpeta editor/ del repositorio de código fuente de Godot.
Some editor functionality is also implemented via modules. Some of these are only enabled in editor builds to decrease the binary size of export templates. See the modules/ folder in the Godot source repository.
Algunos archivos importantes en el editor son:
editor/editor_node.cpp: Main editor initialization file. Effectively the "main scene" of the editor.
editor/project_manager.cpp: Main Project Manager initialization file. Effectively the "main scene" of the Project Manager.
editor/plugins/canvas_item_editor_plugin.cpp: The 2D editor viewport and related functionality (toolbar at the top, editing modes, overlaid helpers/panels, …).
editor/plugins/node_3d_editor_plugin.cpp: The 3D editor viewport and related functionality (toolbar at the top, editing modes, overlaid panels, …).
editor/plugins/node_3d_editor_gizmos.cpp: Where the 3D editor gizmos are defined and drawn. This file doesn't have a 2D counterpart as 2D gizmos are drawn by the nodes themselves.
Dependencias del editor en archivos de scene/
¶
Cuando trabajas en una función del editor, es posible que tengas que modificar archivos en los nodos de la interfaz gráfica de Godot, los cuales puedes encontrar en la carpeta scene/
.
Una regla importante a tener en cuenta es que no debes introducir nuevas dependencias a inclusiones de editor/
en otras carpetas, como por ejemplo scene/
. Esto se aplica incluso si usas #ifdef TOOLS_ENABLED
.
Para hacer que la base de código sea más fácil de seguir y esté más autocontenido, el orden de dependencia permitido es el siguiente:
editor/
->scene/
->servers/
->core/
Esto significa que los archivos en editor/
pueden depender de inclusiones de scene/
, servers/
y core/
. Pero, por ejemplo, mientras que scene/
puede depender de inclusiones de servers/
y core/
, no puede depender de inclusiones de editor/
.
Currently, there are some dependencies to editor/
includes in scene/
files, but
they are in the process of being removed.
Tips de desarrollo¶
To iterate quickly on the editor, we recommend to set up a test project and open it from the command line after compiling the editor. This way, you don't have to go through the Project Manager every time you start Godot.