Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Introduzione allo sviluppo dell'editor
In questa pagina, imparerai:
Le scelte progettuali alla base dell'editor Godot.
Come lavorare efficientemente sul codice C++ dell'editor Godot.
Questa guida è rivolta ai contributori attuali o futuri del motore. Per creare estensioni dell'editor in GDScript, consultare invece Creare estenzioni.
Vedi anche
Se non sei familiare con Godot, ti consigliamo di leggere La filosofia progettuale di Godot prima di continuare. Poiché l'editor di Godot è un progetto Godot scritto in C++, gran parte della filosofia del motore si applica anche all'editor.
Scelte tecniche
L'editor di Godot è disegnato tramite il motore di rendering e il sistema di interfaccia utente (UI) di Godot. Non si basa su un toolkit come GTK o Qt. In spirito, è simile a software come Blender. Sebbene l'utilizzo di toolkit permetta di ottenere un aspetto "nativo" più facilmente, sono anche piuttosto pesanti e la loro licenza non è compatibile con quella di Godot.
L'editor è interamente scritto in C++. Non può contenere codice GDScript o C#.
Struttura delle cartelle
Il codice dell'editor è interamente contenuto nella cartella editor/ del repository sorgente di Godot.
Alcune funzionalità dell'editor sono implementate anche tramite modules. Alcune di queste sono abilitate solo nelle build dell'editor per ridurre le dimensioni binarie dei modelli di esportazione. Consultare la cartella modules/ nel repository sorgente di Godot.
Alcuni file importanti nell'editor sono:
editor/editor_node.cpp: File di inizializzazione principale dell'editor. Effettivamente la "scena principale" dell'editor.
editor/project_manager/project_manager.cpp: File di inizializzazione principale del Gestore dei progetti. Effettivamente la "scena principale" del Gestore dei progetti.
editor/scene/canvas_item_editor_plugin.cpp: la viewport dell'editor 2D e le relative funzionalità (barra degli strumenti in alto, modalità di modifica, supporti/pannelli sovrapposti, …).
editor/scene/3d/node_3d_editor_plugin.cpp: La viewport dell'editor 3D e le relative funzionalità (barra degli strumenti in alto, modalità di modifica, pannelli sovrapposti, …).
editor/scene/3d/node_3d_editor_gizmos.cpp: dove sono definiti e disegnati i gizmo dell'editor 3D. Questo file non ha una controparte 2D, poiché i gizmo 2D sono disegnati dai nodi stessi.
Dipendenze dell'editor nei file scene/
Quando si lavora su una funzionalità dell'editor, potrebbe essere necessario modificare i file nei nodi dell'interfaccia grafica di Godot, che si trovano nella cartella scene/.
Una regola da tenere a mente è che non è consentito introdurre nuove dipendenze agli include di editor/ in altre cartelle come scene/. Questo vale anche se si utilizza #ifdef TOOLS_ENABLED.
Per rendere il codice più facile da seguire e più autonomo, l'ordine di dipendenza consentito è:
editor/->scene/->servers/->core/
Ciò significa che i file in editor/ possono dipendere dagli include di scene/, servers/ e core/. Ma, ad esempio, mentre scene/ può dipendere dagli include di servers/ e core/, non può dipendere dagli include di editor/.
Attualmente, ci sono alcune dipendenze da editor/ incluse nei file scene/, ma sono in fase di rimozione.
Consigli di sviluppo
Per iterare rapidamente sull'editor, consigliamo di impostare un progetto di prova e aprirlo dalla riga di comando dopo aver compilato l'editor. In questo modo, non si dovrà passare attraverso il Gestore dei progetti ogni volta che Godot viene avviato.