EditorInterface
Eredita: Object
Interfaccia dell'editor Godot.
Descrizione
EditorInterface dà il controllo sulla finestra dell'editor di Godot. Permette di personalizzare la finestra, salvare e (ri)caricare scene, renderizzare le anteprime delle mesh, ispezionare e modificare le risorse e gli oggetti e fornisce l'accesso a EditorSettings, EditorFileSystem, EditorResourcePreview, ScriptEditor, alla viewport dell'editor e alle informazioni sulle scene.
Nota: Questa classe non dovrebbe essere istanziata direttamente. Invece, accedi al singleton direttamente tramite il suo nome.
var editor_settings = EditorInterface.get_editor_settings()
// In C# puoi accedervi tramite la proprietà Singleton statica.
EditorSettings settings = EditorInterface.Singleton.GetEditorSettings();
Proprietà
Metodi
Descrizioni delle proprietà
Se true, abilita la modalità senza distrazioni che nasconde i pannelli laterali per aumentare lo spazio disponibile per la vista principale.
Se true, la modalità Movie Maker è abilitata nell'editor. Vedi MovieWriter per ulteriori informazioni.
Descrizioni dei metodi
Chiude la scena attualmente attiva, ignorando eventuali modifiche in sospeso nel processo. Restituisce @GlobalScope.OK in caso di successo oppure @GlobalScope.ERR_DOES_NOT_EXIST se non c'è alcuna scena da chiudere.
Modifica il Node specificato. Il nodo verrà selezionato anche se si trova all'interno dell'albero di scena.
void edit_resource(resource: Resource) 🔗
Modifica la Resource specificata. Se la risorsa è uno Script, puoi anche modificarla con edit_script() per specificare la posizione della riga e della colonna.
void edit_script(script: Script, line: int = -1, column: int = 0, grab_focus: bool = true) 🔗
Modifica lo Script specificato. È anche possibile specificare la riga e la colonna su cui aprire lo script. Lo script verrà aperto con l'editor configurato dall'utente per la lingua dello script, che potrebbe essere un editor esterno.
Control get_base_control() const 🔗
Restituisce il contenitore principale della finestra dell'editor di Godot. Ad esempio, puoi usarlo per recuperare la dimensione del contenitore e posizionare i tuoi controlli di conseguenza.
Attenzione: Rimuovere e liberare questo nodo renderà l'editor inutile e potrebbe causare un arresto anomalo.
EditorCommandPalette get_command_palette() const 🔗
Restituisce l'istanza di EditorCommandPalette dell'editor.
Attenzione: Rimuovere e liberare questo nodo renderà una parte dell'editor inutile e potrebbe causare un arresto anomalo.
String get_current_directory() const 🔗
Restituisce la cartella attualmente visualizzata nel FileSystemDock. Se viene selezionato un file, la sua cartella di base verrà restituita attraverso String.get_base_dir().
String get_current_feature_profile() const 🔗
Restituisce il nome del profilo di funzionalità attualmente attivo. Se il profilo predefinito è attualmente attivo, viene restituita una stringa vuota.
Per ottenere un riferimento all'EditorFeatureProfile, è necessario caricare il profilo di funzionalità attraverso EditorFeatureProfile.load_from_file().
Nota: I profili di funzionalità creati tramite l'interfaccia utente sono caricati dalla cartella feature_profiles, come file con estensione .profile. È possibile ricavare la cartella di configurazione dell'editor tramite EditorPaths.get_config_dir().
String get_current_path() const 🔗
Restituisce il percorso attualmente visualizzato nel FileSystemDock.
Node get_edited_scene_root() const 🔗
Restituisce il Node radice della scena in fase di modifica (attuale).
VBoxContainer get_editor_main_screen() const 🔗
Restituisce il controllo dell'editor responsabile dei plugin e degli strumenti della schermata principale. Utilizzalo con le estensioni che implementano EditorPlugin._has_main_screen().
Nota: Questo nodo è un VBoxContainer, il che significa che se si aggiunge un figlio Control ad esso, è necessario impostare il Control.size_flags_vertical del figlio su Control.SIZE_EXPAND_FILL per fargli usare tutto lo spazio disponibile.
Attenzione: Rimuovere e liberare questo nodo renderà una parte dell'editor inutile e potrebbe causare un arresto anomalo.
EditorPaths get_editor_paths() const 🔗
Restituisce il singleton EditorPaths.
float get_editor_scale() const 🔗
Restituisce la scala effettiva dell'interfaccia utente dell'editor (1.0 è una scala del 100%). Può essere utilizzata per regolare la posizione e le dimensioni dell'interfaccia utente aggiunta dalle estensioni.
Nota: Questo valore è impostato tramite le impostazioni EditorSettings.interface/editor/display_scale and EditorSettings.interface/editor/custom_display_scale. L'editor deve essere riavviato affinché le modifiche siano applicate correttamente.
EditorSettings get_editor_settings() const 🔗
Restituisce l'istanza di EditorSettings dell'editor.
Theme get_editor_theme() const 🔗
Restituisce il Theme dell'editor.
Nota: Quando si crea un'interfaccia utente dell'editor personalizzata, è preferibile accedere agli elementi del tema direttamente dai nodi della GUI attraverso i metodi get_theme_*.
EditorToaster get_editor_toaster() const 🔗
Restituisce l'EditorToaster dell'editor.
EditorUndoRedoManager get_editor_undo_redo() const 🔗
Restituisce l'EditorUndoRedoManager dell'editor.
SubViewport get_editor_viewport_2d() const 🔗
Restituisce la SubViewport dell'editor 2D. Non ha una telecamera. Invece, le trasformazioni della vista vengono effettuate direttamente e sono accessibili con Viewport.global_canvas_transform.
SubViewport get_editor_viewport_3d(idx: int = 0) const 🔗
Restituisce la SubViewport dell'editor 3D specificata, da 0 a 3. La viewport può essere utilizzata per accedere alle telecamere dell'editor attivo con Viewport.get_camera_3d().
FileSystemDock get_file_system_dock() const 🔗
Restituisce l'istanza FileSystemDock dell'editor.
Attenzione: Rimuovere e liberare questo nodo renderà inutile una parte dell'editor e potrebbe causare un arresto anomalo.
EditorInspector get_inspector() const 🔗
Restituisce l'istanza EditorInspector dell'editor.
Attenzione: Rimuovere e liberare questo nodo renderà inutile una parte dell'editor e potrebbe causare un arresto anomalo.
Array[Node] get_open_scene_roots() const 🔗
Restituisce un array con riferimenti ai nodi radice delle scene attualmente aperte.
PackedStringArray get_open_scenes() const 🔗
Restituisce un array con i percorsi dei file delle scene attualmente aperte.
String get_playing_scene() const 🔗
Restituisce il nome della scena che è in riproduzione. Se nessuna scena è attualmente in riproduzione, restituisce una stringa vuota.
EditorFileSystem get_resource_filesystem() const 🔗
Restituisce l'istanza EditorFileSystem dell'editor.
EditorResourcePreview get_resource_previewer() const 🔗
Restituisce l'istanza EditorResourcePreview dell'editor.
ScriptEditor get_script_editor() const 🔗
Restituisce l'istanza ScriptEditor dell'editor.
Attenzione: Rimuovere e liberare questo nodo renderà inutile una parte dell'editor e potrebbe causare un arresto anomalo.
PackedStringArray get_selected_paths() const 🔗
Restituisce un array contenente i percorsi dei file (e cartelle) attualmente selezionati nel FileSystemDock.
EditorSelection get_selection() const 🔗
Restituisce l'istanza EditorSelection dell'editor.
void inspect_object(object: Object, for_property: String = "", inspector_only: bool = false) 🔗
Mostra la proprietà specificata sull'oggetto object nel pannello dell'Ispettore dell'editor. Se inspector_only è true, i plugin non tenteranno di modificare object.
bool is_multi_window_enabled() const 🔗
Restituisce true se il supporto per più finestre è abilitato nell'editor. Il supporto per più finestre è abilitato se tutte queste condizioni sono vere:
Viewport.gui_embed_subwindows è
false. Questo è forzato atruesu piattaforme che non supportano più finestre come Web, o quando viene utilizzato l'argomento della riga di comando--single-windowTutorial sulla riga di comando.
bool is_playing_scene() const 🔗
Restituisce true se una scena è attualmente in riproduzione, altrimenti false. Le scene in pausa sono considerate in riproduzione.
bool is_plugin_enabled(plugin: String) const 🔗
Restituisce true se l'estensione plugin è abilitata. Il nome dell'estensione è la stessa della sua cartella.
Array[Texture2D] make_mesh_previews(meshes: Array[Mesh], preview_size: int) 🔗
Restituisce le anteprime della mesh renderizzate alla dimensione specificata come un Array di Texture2D.
void mark_scene_as_unsaved() 🔗
Contrassegna la scheda della scena attuale come non salvata.
void open_scene_from_path(scene_filepath: String, set_inherited: bool = false) 🔗
Apre la scena al percorso specificato. Se set_inherited è true, crea una nuova scena ereditata.
void play_current_scene() 🔗
Riproduce la scena attualmente attiva.
void play_custom_scene(scene_filepath: String) 🔗
Riproduce la scena specificata dal suo percorso file.
void play_main_scene() 🔗
Riproduce la scena principale.
void popup_create_dialog(callback: Callable, base_type: StringName = "", current_type: String = "", dialog_title: String = "", type_blocklist: Array[StringName] = []) 🔗
Sperimentale: Questo metodo potrebbe essere cambiato o rimosso in versioni future.
Apre una finestra di dialogo dell'editor per la creazione di un oggetto.
Il callback deve accettare un singolo argomento di tipo StringName che conterrà il nome del tipo dell'oggetto selezionato o sarà vuoto se non è selezionato alcun elemento.
Il parametro base_type specifica il tipo di base degli oggetti da visualizzare. Ad esempio, se si imposta questo parametro su "Resource", tutti i tipi derivati da Resource verranno visualizzati nella finestra di dialogo.
Il parametro current_type verrà passato nella casella di ricerca della finestra di dialogo e il tipo specificato potrà essere selezionato immediatamente quando viene visualizzata la finestra di dialogo. Se il parametro current_type non è derivato da base_type, non ci sarà alcun risultato del tipo nella finestra di dialogo.
Il parametro dialog_title consente di definire un titolo personalizzato per la finestra di dialogo. Questo è utile se si desidera suggerire con precisione l'utilizzo della finestra di dialogo. Se il parametro dialog_title è una stringa vuota, la finestra di dialogo utilizzerà "Crea nuovo 'Tipo di base'" come titolo predefinito.
Il parametro type_blocklist contiene un elenco di nomi di tipi; i tipi presenti nella blocklist saranno nascosti dalla finestra di dialogo di creazione.
Nota: Se si tenta di elencare il tipo base nel parametro type_blocklist, tutti i tipi derivati da esso verranno nascosti dalla finestra di dialogo di creazione.
void popup_dialog(dialog: Window, rect: Rect2i = Rect2i(0, 0, 0, 0)) 🔗
Apre la finestra dialog nell'interfaccia utente dell'editor con Window.popup_exclusive(). La finestra di dialogo non deve avere un genitore attuale, altrimenti il metodo fallisce.
Vedi anche Window.set_unparent_when_invisible().
void popup_dialog_centered(dialog: Window, minsize: Vector2i = Vector2i(0, 0)) 🔗
Apre la finestra dialog nell'interfaccia utente dell'editor con Window.popup_exclusive_centered(). La finestra di dialogo non deve avere un genitore attuale, altrimenti il metodo fallisce.
Vedi anche Window.set_unparent_when_invisible().
void popup_dialog_centered_clamped(dialog: Window, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75) 🔗
Apre la finestra dialog nell'interfaccia utente dell'editor con Window.popup_exclusive_centered_clamped(). La finestra di dialogo non deve avere un genitore attuale, altrimenti il metodo fallisce.
Vedi anche Window.set_unparent_when_invisible().
void popup_dialog_centered_ratio(dialog: Window, ratio: float = 0.8) 🔗
Apre la finestra dialog nell'interfaccia utente dell'editor con Window.popup_exclusive_centered_ratio(). La finestra di dialogo non deve avere un genitore attuale, altrimenti il metodo fallisce.
Vedi anche Window.set_unparent_when_invisible().
void popup_method_selector(object: Object, callback: Callable, current_value: String = "") 🔗
Apre una finestra di dialogo dell'editor per selezionare un metodo da object. Il callback deve accettare un singolo argomento di tipo String che conterrà il nome del metodo selezionato o sarà vuoto se la finestra di dialogo viene chiusa. Se viene fornito current_value, il metodo sarà selezionato automaticamente nell'elenco dei metodi, se esiste.
void popup_node_selector(callback: Callable, valid_types: Array[StringName] = [], current_value: Node = null) 🔗
Apre una finestra di dialogo dell'editor per selezionare un Node dalla scena modificata. Il callback deve accettare un singolo argomento di tipo NodePath. Viene chiamato sul NodePath selezionato o sul percorso vuoto ^"" se la finestra di dialogo viene annullata. Se valid_types viene fornito, la finestra di dialogo mostrerà solo i nodi che corrispondono a uno dei tipi di nodo elencati. Se viene fornito current_value, il nodo verrà selezionato automaticamente nell'albero, se esiste.
Esempio: Visualizza la finestra di dialogo per selezionare un nodo non appena questo nodo viene aggiunto all'albero per la prima volta:
func _ready():
if Engine.is_editor_hint():
EditorInterface.popup_node_selector(_on_node_selected, ["Button"])
func _on_node_selected(node_path):
if node_path.is_empty():
print("selezione nodo annullata")
else:
print("selezionato ", node_path)
void popup_property_selector(object: Object, callback: Callable, type_filter: PackedInt32Array = PackedInt32Array(), current_value: String = "") 🔗
Apre una finestra di dialogo dell'editor per selezionare le proprietà da object. Il callback deve accettare un singolo argomento di tipo NodePath. Viene chiamato sul percorso della proprietà selezionata (vedi NodePath.get_as_property_path()) o sul percorso vuoto ^"" se la finestra di dialogo viene annullata. Se type_filter viene fornito, la finestra di dialogo mostrerà solo le proprietà che corrispondono a uno dei valori di Variant.Type elencati. Se viene fornito current_value, la proprietà verrà selezionata automaticamente nell'elenco delle proprietà, se esiste.
func _ready():
if Engine.is_editor_hint():
EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT])
func _on_property_selected(property_path):
if property_path.is_empty():
print("selezione proprietà annullata")
else:
print("selezionata ", property_path)
void popup_quick_open(callback: Callable, base_types: Array[StringName] = []) 🔗
Apre una finestra di dialogo dell'editor per selezionare rapidamente un file risorsa. Il callback deve accettare un singolo argomento di tipo String che conterrà il percorso della risorsa selezionata o sarà vuoto se la finestra di dialogo viene chiusa. Se viene fornito base_types, la finestra di dialogo mostrerà solo le risorse che corrispondono a questi tipi. Sono supportati solo i tipi derivanti da Resource.
void reload_scene_from_path(scene_filepath: String) 🔗
Ricarica la scena al percorso indicato.
void restart_editor(save: bool = true) 🔗
Riavvia l'editor. Questo chiude l'editor e poi apre lo stesso progetto. Se save è true, il progetto verrà salvato prima di riavviare.
void save_all_scenes() 🔗
Salva tutte le scene aperte nell'editor.
Salva la scena attualmente attiva. Restituisce @GlobalScope.OK o @GlobalScope.ERR_CANT_CREATE.
void save_scene_as(path: String, with_preview: bool = true) 🔗
Salva la scena attualmente attiva come file nel percorso path.
void select_file(file: String) 🔗
Seleziona il file, con il percorso fornito da file, nel pannello del FileSystem.
void set_current_feature_profile(profile_name: String) 🔗
Seleziona e attiva il profilo di funzionalità specificato con il nome del profilo profile_name specificato. Imposta profile_name su una stringa vuota per ripristinare il profilo di funzionalità predefinito.
Un profilo di funzionalità può essere creato in codice usando la classe EditorFeatureProfile.
Nota: Il profilo di funzionalità che viene attivato deve trovarsi nella cartella feature_profiles, come file con estensione .profile. Se non è possibile trovare un profilo, si verifica un errore. La cartella di configurazione dell'editor può essere trovata tramite EditorPaths.get_config_dir().
void set_main_screen_editor(name: String) 🔗
Imposta la schermata principale attuale dell'editor su quella specificata in name. name deve corrispondere esattamente al titolo della scheda in questione (ad esempio 2D, 3D, Script, Game o AssetLib per le schede predefinite).
void set_plugin_enabled(plugin: String, enabled: bool) 🔗
Imposta lo stato d'attivazione di un'estensione. Il nome dell'estensione è lo stesso del nome della sua cartella.
void stop_playing_scene() 🔗
Interrompe la scena attualmente in riproduzione.