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.

EditorPlugin

Hérite de : Node < Object

Hérité par : GridMapEditorPlugin

Utiliser par l'éditeur pour augmenter ses fonctionnalités.

Description

Les plugins sont utilisés par l'éditeur pour étendre la fonctionnalité. Les types les plus courants de plugins sont ceux qui modifient un nœud donné ou un type de ressource, les plugins d'importation et les plugins d'exportation. Voir aussi EditorScript pour ajouter des fonctions à l'éditeur.

Note : Certains noms de cette classe contiennent « left» ou « right» (par exemple DOCK_SLOT_LEFT_UL). Ces API supposent une mise en page de gauche à droite, et seraient à l'envers lors de l'utilisation de la mise en page de droite à gauche. Ces noms sont conservés pour des raisons de compatibilité.

Tutoriels

Méthodes

void

_apply_changes() virtual

bool

_build() virtual

void

_clear() virtual

void

_disable_plugin() virtual

void

_edit(object: Object) virtual

void

_enable_plugin() virtual

void

_forward_3d_draw_over_viewport(viewport_control: Control) virtual

void

_forward_3d_force_draw_over_viewport(viewport_control: Control) virtual

int

_forward_3d_gui_input(viewport_camera: Camera3D, event: InputEvent) virtual

void

_forward_canvas_draw_over_viewport(viewport_control: Control) virtual

void

_forward_canvas_force_draw_over_viewport(viewport_control: Control) virtual

bool

_forward_canvas_gui_input(event: InputEvent) virtual

PackedStringArray

_get_breakpoints() virtual const

Texture2D

_get_plugin_icon() virtual const

String

_get_plugin_name() virtual const

Dictionary

_get_state() virtual const

String

_get_unsaved_status(for_scene: String) virtual const

void

_get_window_layout(configuration: ConfigFile) virtual

bool

_handles(object: Object) virtual const

bool

_has_main_screen() virtual const

void

_make_visible(visible: bool) virtual

PackedStringArray

_run_scene(scene: String, args: PackedStringArray) virtual const

void

_save_external_data() virtual

void

_set_state(state: Dictionary) virtual

void

_set_window_layout(configuration: ConfigFile) virtual

void

add_autoload_singleton(name: String, path: String)

void

add_context_menu_plugin(slot: ContextMenuSlot, plugin: EditorContextMenuPlugin)

Button

add_control_to_bottom_panel(control: Control, title: String, shortcut: Shortcut = null)

void

add_control_to_container(container: CustomControlContainer, control: Control)

void

add_control_to_dock(slot: DockSlot, control: Control, shortcut: Shortcut = null)

void

add_custom_type(type: String, base: String, script: Script, icon: Texture2D)

void

add_debugger_plugin(script: EditorDebuggerPlugin)

void

add_dock(dock: EditorDock)

void

add_export_platform(platform: EditorExportPlatform)

void

add_export_plugin(plugin: EditorExportPlugin)

void

add_import_plugin(importer: EditorImportPlugin, first_priority: bool = false)

void

add_inspector_plugin(plugin: EditorInspectorPlugin)

void

add_node_3d_gizmo_plugin(plugin: EditorNode3DGizmoPlugin)

void

add_resource_conversion_plugin(plugin: EditorResourceConversionPlugin)

void

add_scene_format_importer_plugin(scene_format_importer: EditorSceneFormatImporter, first_priority: bool = false)

void

add_scene_post_import_plugin(scene_import_plugin: EditorScenePostImportPlugin, first_priority: bool = false)

void

add_tool_menu_item(name: String, callable: Callable)

void

add_tool_submenu_item(name: String, submenu: PopupMenu)

void

add_translation_parser_plugin(parser: EditorTranslationParserPlugin)

void

add_undo_redo_inspector_hook_callback(callable: Callable)

EditorInterface

get_editor_interface()

PopupMenu

get_export_as_menu()

String

get_plugin_version() const

ScriptCreateDialog

get_script_create_dialog()

EditorUndoRedoManager

get_undo_redo()

void

hide_bottom_panel()

void

make_bottom_panel_item_visible(item: Control)

void

queue_save_layout()

void

remove_autoload_singleton(name: String)

void

remove_context_menu_plugin(plugin: EditorContextMenuPlugin)

void

remove_control_from_bottom_panel(control: Control)

void

remove_control_from_container(container: CustomControlContainer, control: Control)

void

remove_control_from_docks(control: Control)

void

remove_custom_type(type: String)

void

remove_debugger_plugin(script: EditorDebuggerPlugin)

void

remove_dock(dock: EditorDock)

void

remove_export_platform(platform: EditorExportPlatform)

void

remove_export_plugin(plugin: EditorExportPlugin)

void

remove_import_plugin(importer: EditorImportPlugin)

void

remove_inspector_plugin(plugin: EditorInspectorPlugin)

void

remove_node_3d_gizmo_plugin(plugin: EditorNode3DGizmoPlugin)

void

remove_resource_conversion_plugin(plugin: EditorResourceConversionPlugin)

void

remove_scene_format_importer_plugin(scene_format_importer: EditorSceneFormatImporter)

void

remove_scene_post_import_plugin(scene_import_plugin: EditorScenePostImportPlugin)

void

remove_tool_menu_item(name: String)

void

remove_translation_parser_plugin(parser: EditorTranslationParserPlugin)

void

remove_undo_redo_inspector_hook_callback(callable: Callable)

void

set_dock_tab_icon(control: Control, icon: Texture2D)

void

set_force_draw_over_forwarding_enabled()

void

set_input_event_forwarding_always_enabled()

int

update_overlays() const


Signaux

main_screen_changed(screen_name: String) 🔗

Emitted when user changes the workspace (2D, 3D, Script, Game, Asset Store). Also works with custom screens defined by plugins.


project_settings_changed() 🔗

Obsolète : Use ProjectSettings.settings_changed instead.

Émis quand un paramètre du projet a changé.


resource_saved(resource: Resource) 🔗

Emitted when the given resource was saved on disc. See also scene_saved.


scene_changed(scene_root: Node) 🔗

Émis lorsque la scène est changée dans l'éditeur. L'argument renverra le nœud racine de la scène qui vient de devenir active. Si cette scène est nouvelle et vide, l'argument sera null.


scene_closed(filepath: String) 🔗

Emitted when user closes a scene. The argument is a file path to the closed scene.


scene_saved(filepath: String) 🔗

Emitted when a scene was saved on disc. The argument is a file path to the saved scene. See also resource_saved.


Énumérations

enum CustomControlContainer: 🔗

CustomControlContainer CONTAINER_TOOLBAR = 0

Main editor toolbar, next to play buttons.

CustomControlContainer CONTAINER_SPATIAL_EDITOR_MENU = 1

The toolbar that appears when 3D editor is active.

CustomControlContainer CONTAINER_SPATIAL_EDITOR_SIDE_LEFT = 2

Barre latérale gauche de l'éditeur 3D.

CustomControlContainer CONTAINER_SPATIAL_EDITOR_SIDE_RIGHT = 3

Barre latérale droite de l'éditeur 3D.

CustomControlContainer CONTAINER_SPATIAL_EDITOR_BOTTOM = 4

Panneau inférieur de l'éditeur 3D.

CustomControlContainer CONTAINER_CANVAS_EDITOR_MENU = 5

The toolbar that appears when 2D editor is active.

CustomControlContainer CONTAINER_CANVAS_EDITOR_SIDE_LEFT = 6

Barre latérale gauche de l'éditeur 2D.

CustomControlContainer CONTAINER_CANVAS_EDITOR_SIDE_RIGHT = 7

Barre latérale droite de l'éditeur 2D.

CustomControlContainer CONTAINER_CANVAS_EDITOR_BOTTOM = 8

Panneau inférieur de l'éditeur 2D.

CustomControlContainer CONTAINER_INSPECTOR_BOTTOM = 9

Section inférieure de l'inspecteur.

CustomControlContainer CONTAINER_PROJECT_SETTING_TAB_LEFT = 10

Tab of Project Settings dialog, to the left of other tabs.

CustomControlContainer CONTAINER_PROJECT_SETTING_TAB_RIGHT = 11

Tab of Project Settings dialog, to the right of other tabs.


enum DockSlot: 🔗

DockSlot DOCK_SLOT_NONE = -1

The dock is closed.

DockSlot DOCK_SLOT_LEFT_UL = 0

Dock slot, left side, upper-left (empty in default layout).

DockSlot DOCK_SLOT_LEFT_BL = 1

Dock slot, left side, bottom-left (empty in default layout).

DockSlot DOCK_SLOT_LEFT_UR = 2

Dock slot, left side, upper-right (in default layout includes Scene and Import docks).

DockSlot DOCK_SLOT_LEFT_BR = 3

Dock slot, left side, bottom-right (in default layout includes FileSystem dock).

DockSlot DOCK_SLOT_RIGHT_UL = 4

Dock slot, right side, upper-left (in default layout includes Inspector, Node, and History docks).

DockSlot DOCK_SLOT_RIGHT_BL = 5

Dock slot, right side, bottom-left (empty in default layout).

DockSlot DOCK_SLOT_RIGHT_UR = 6

Dock slot, right side, upper-right (empty in default layout).

DockSlot DOCK_SLOT_RIGHT_BR = 7

Dock slot, right side, bottom-right (empty in default layout).

DockSlot DOCK_SLOT_BOTTOM = 8

Panneau du bas.

DockSlot DOCK_SLOT_MAX = 9

Représente la taille de l’enum DockSlot.


enum AfterGUIInput: 🔗

AfterGUIInput AFTER_GUI_INPUT_PASS = 0

Forwards the InputEvent to other EditorPlugins.

AfterGUIInput AFTER_GUI_INPUT_STOP = 1

Prevents the InputEvent from reaching other Editor classes.

AfterGUIInput AFTER_GUI_INPUT_CUSTOM = 2

Pass the InputEvent to other editor plugins except the main Node3D one. This can be used to prevent node selection changes and work with sub-gizmos instead.


Descriptions des méthodes

void _apply_changes() virtual 🔗

Cette méthode est appelée lorsque l'éditeur est sur le point d'enregistrer le projet, passer à un autre onglet, etc. Il demande au greffon d'appliquer tout changement d'état qui serait en attente pour garder une certaine cohérence.

Ceci est utilisé, par exemple, dans les éditeurs d'ombres pour signaler au greffon qu'il doit appliquer le shader d'ombre écrit par l'utilisateur à l'objet.


bool _build() virtual 🔗

This method is called when the editor is about to run the project. The plugin can then perform required operations before the project runs.

This method must return a boolean. If this method returns false, the project will not run. The run is aborted immediately, so this also prevents all other plugins' _build() methods from running.


void _clear() virtual 🔗

Efface tout l'état et réinitialise à zéro l'objet modifié. Cela garantit que votre greffon ne maintient pas l'édition d'un nœud existant ou d'une autre scène.


void _disable_plugin() virtual 🔗

Appelé par le moteur lorsque l'utilisateur désactive le EditorPlugin dans l'onglet Greffon de la fenêtre des paramètres du projet.


void _edit(object: Object) virtual 🔗

This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.

object can be null if the plugin was editing an object, but there is no longer any selected object handled by this plugin. It can be used to cleanup editing state.


void _enable_plugin() virtual 🔗

Appelé par le moteur lorsque l'utilisateur active le EditorPlugin dans l'onglet Greffon de la fenêtre des paramètres du projet.


void _forward_3d_draw_over_viewport(viewport_control: Control) virtual 🔗

Appelé par le moteur quand la fenêtre d'affiche 3D de l'éditeur est mise à jour. viewport_control est un overlay au dessus de la fenêtre d'affichage et peut être utilisé pour le dessin. Vous pouvez mettre à jour la fenêtre d'affichage manuellement en appelant update_overlays().

func _forward_3d_draw_over_viewport(overlay):
    # Dessine un cercle sur la position du curseur.
    overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color.WHITE)

func _forward_3d_gui_input(camera, event):
    if event is InputEventMouseMotion:
        # Redessine la fenêtre d'affichage lorsque le curseur est déplacé.
        update_overlays()
        return EditorPlugin.AFTER_GUI_INPUT_STOP
    return EditorPlugin.AFTER_GUI_INPUT_PASS

void _forward_3d_force_draw_over_viewport(viewport_control: Control) virtual 🔗

This method is the same as _forward_3d_draw_over_viewport(), except it draws on top of everything. Useful when you need an extra layer that shows over anything else.

You need to enable calling of this method by using set_force_draw_over_forwarding_enabled().


int _forward_3d_gui_input(viewport_camera: Camera3D, event: InputEvent) virtual 🔗

Appelé lorsqu'il y a un nœud racine dans la scène modifiée actuelle, _handles() est mis en œuvre, et un InputEvent se produit dans la fenêtre d'affichage 3D. La valeur retournée décide si le InputEvent est consommé ou transmis à d'autres EditorPlugin. Voir AfterGUIInput pour les options.

# Empêche l'InputEvent d'atteindre d'autres classes d'Éditeur.
func _forward_3d_gui_input(camera, event):
    return EditorPlugin.AFTER_GUI_INPUT_STOP

Cette méthode doit retourner AFTER_GUI_INPUT_PASS afin de transmettre le InputEvent aux autres classes d'éditeur.

# Utilise InputEventMouseMotion et transmets les autres types d'InputEvent.
func _forward_3d_gui_input(camera, event):
    return EditorPlugin.AFTER_GUI_INPUT_STOP if event is InputEventMouseMotion else EditorPlugin.AFTER_GUI_INPUT_PASS

void _forward_canvas_draw_over_viewport(viewport_control: Control) virtual 🔗

Appelé par le moteur quand la fenêtre d'affiche 2D de l'éditeur est mise à jour. viewport_control est un overlay sur la fenêtre d'afichage et peut être utilisé pour le dessin. Vous pouvez mettre à jour la fenêtre d'affichage manuellement en appelant update_overlays().

func _forward_canvas_draw_over_viewport(overlay):
    # Dessine un cercle sur la position du curseur.
    overlay.draw_circle(overlay.get_local_mouse_position(), 64, Color.WHITE)

func _forward_canvas_gui_input(event):
    if event is InputEventMouseMotion:
        # Redessine la fenêtre d'affichage lorsque le curseur est déplacé.
        update_overlays()
        return true
    return false

void _forward_canvas_force_draw_over_viewport(viewport_control: Control) virtual 🔗

This method is the same as _forward_canvas_draw_over_viewport(), except it draws on top of everything. Useful when you need an extra layer that shows over anything else.

You need to enable calling of this method by using set_force_draw_over_forwarding_enabled().


bool _forward_canvas_gui_input(event: InputEvent) virtual 🔗

Appelé quand il y a un nœud racine dans la scène en cours d’édition, que _handles() est implémenté et qu'un InputEvent est déclenché dans la fenêtre d'affichage 2D. Si cette méthode retourne true, eventest intercepté par cet EditorPlugin, sinon event est transmis aux autres classes d'éditeur.

# Empêche le InputEvent d’atteindre d'autres classes d'éditeur.
func _forward_canvas_gui_input(event):
    return true

Cette métode doit retourner ``false `` afin de transmettre le InputEvent à d'autres classes d'éditeur.

# Consomme le EventMouseMotion et transmet les autres types d'InputEvent.
func _forward_canvas_gui_input(event):
    if (event is InputEventMouseMotion):
        return true
    return false

PackedStringArray _get_breakpoints() virtual const 🔗

C'est pour les éditeurs qui modifient des objets basés sur des scripts. Vous pouvez renvoyer une liste de points d'arrêt avec le format (script:line), par exemple : res://path_to_script.gd:25.


Texture2D _get_plugin_icon() virtual const 🔗

Override this method in your plugin to return a Texture2D in order to give it an icon.

For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", "Game", and "Asset Store" buttons.

Ideally, the plugin icon should be white with a transparent background and 16×16 pixels in size.

func _get_plugin_icon():
    # You can use a custom icon:
    return preload("res://addons/my_plugin/my_plugin_icon.svg")
    # Or use a built-in icon:
    return EditorInterface.get_editor_theme().get_icon("Node", "EditorIcons")

String _get_plugin_name() virtual const 🔗

Override this method in your plugin to provide the name of the plugin when displayed in the Godot editor.

For main screen plugins, this appears at the top of the screen, to the right of the "2D", "3D", "Script", "Game", and "Asset Store" buttons.


Dictionary _get_state() virtual const 🔗

Redéfinissez cette méthode pour fournir des données d'état que vous souhaitez enregistrer, comme la position de la vue, les paramètres de grille, les repliages, etc. Ceci est utilisé pour enregistrer la scène (pour que l'état soit maintenu lors de l'ouverture suivante) et pour changer d'onglet (pour que l'état soit restauré quand l'onglet est ouvert à nouveau). Ces données sont automatiquement sauvegardées pour chaque scène dans un fichier editstate dans le dossier de métadonnées de l'éditeur. Si vous souhaitez stocker des données globales de l'éditeur (indépendantes de la scène) pour votre plugin, utilisez _get_window_layout() à la place.

Utilisez _set_state() pour restaurer votre état sauvegardé.

Note : Cette méthode ne devrait pas être utilisée pour sauvegarder des paramètres importants qui devraient persister dans le projet.

Note : Vous devez implémenter _get_plugin_name() pour que l'état soit stocké et restauré correctement.

func get_state():
    var etat = {"zoom": zoom, "preferred_color": ma_couleur }
    return etat

String _get_unsaved_status(for_scene: String) virtual const 🔗

Override this method to provide a custom message that lists unsaved changes. The editor will call this method when exiting or when closing a scene, and display the returned string in a confirmation dialog. Return empty string if the plugin has no unsaved changes.

When closing a scene, for_scene is the path to the scene being closed. You can use it to handle built-in resources in that scene.

If the user confirms saving, _save_external_data() will be called, before closing the editor.

func _get_unsaved_status(for_scene):
    if not unsaved:
        return ""

    if for_scene.is_empty():
        return "Save changes in MyCustomPlugin before closing?"
    else:
        return "Scene %s has changes from MyCustomPlugin. Save before closing?" % for_scene.get_file()

func _save_external_data():
    unsaved = false

If the plugin has no scene-specific changes, you can ignore the calls when closing scenes:

func _get_unsaved_status(for_scene):
    if not for_scene.is_empty():
        return ""

void _get_window_layout(configuration: ConfigFile) virtual 🔗

Override this method to provide the GUI layout of the plugin or any other data you want to be stored. This is used to save the project's editor layout when queue_save_layout() is called or the editor layout was changed (for example changing the position of a dock). The data is stored in the editor_layout.cfg file in the editor metadata directory.

Use _set_window_layout() to restore your saved layout.

func _get_window_layout(configuration):
    configuration.set_value("MyPlugin", "window_position", $Window.position)
    configuration.set_value("MyPlugin", "icon_color", $Icon.modulate)

bool _handles(object: Object) virtual const 🔗

Implémentez cette fonction si votre plugin modifie un type spécifique d'objet (Ressource ou Nœud). Si vous retournez true, alors vous obtiendrez les fonctions _edit() et _make_visible() appelées lorsque l'éditeur les demande. Si vous avez déclaré les méthodes _forward_canvas_gui_input() et _forward_3d_gui_input() elles seront également appelées.

Note : Chaque plugin ne doit manipuler qu'un seul type d'objet à la fois. Si un plugin gère plus de types d'objets et qu'ils sont modifiés en même temps, cela entraînera des erreurs.


bool _has_main_screen() virtual const 🔗

Returns true if this is a main screen editor plugin (it goes in the workspace selector together with 2D, 3D, Script, Game, and Asset Store).

When the plugin's workspace is selected, other main screen plugins will be hidden, but your plugin will not appear automatically. It needs to be added as a child of EditorInterface.get_editor_main_screen() and made visible inside _make_visible().

Use _get_plugin_name() and _get_plugin_icon() to customize the plugin button's appearance.

var plugin_control

func _enter_tree():
    plugin_control = preload("my_plugin_control.tscn").instantiate()
    EditorInterface.get_editor_main_screen().add_child(plugin_control)
    plugin_control.hide()

func _has_main_screen():
    return true

func _make_visible(visible):
    plugin_control.visible = visible

func _get_plugin_name():
    return "My Super Cool Plugin 3000"

func _get_plugin_icon():
    return EditorInterface.get_editor_theme().get_icon("Node", "EditorIcons")

void _make_visible(visible: bool) virtual 🔗

Cette fonction sera appelée lorsqu'il est demandé à l'éditeur de devenir visible. Il est utilisé pour les greffons qui modifient un type d'objet spécifique.

Rappelez-vous que vous devez gérer manuellement la visibilité de tous les contrôles de votre éditeur.


PackedStringArray _run_scene(scene: String, args: PackedStringArray) virtual const 🔗

This function is called when an individual scene is about to be played in the editor. args is a list of command line arguments that will be passed to the new Godot instance, which will be replaced by the list returned by this function.

func _run_scene(scene, args):
    args.append("--an-extra-argument")
    return args

Note: Text that is printed in this method will not be visible in the editor's Output panel unless EditorSettings.run/output/always_clear_output_on_play is false.


void _save_external_data() virtual 🔗

Cette méthode est appelée après que l'éditeur enregistre le projet ou lorsqu'il est fermé. Il demande au greffon d'enregistrer les scènes et ressources externes modifiées.


void _set_state(state: Dictionary) virtual 🔗

Restaure l'état enregistré par _get_state(). Cette méthode est appelée lorsque l'onglet de scène actuelle est changé dans l'éditeur.

Note : Votre plugin doit implémenter _get_plugin_name(), sinon il ne sera pas reconnu et cette méthode ne sera pas appelée.

func set_state(data):
    zoom = data.get("zoom", 1.0)
    couleur_preferee= data.get("ma_couleur", Color.WHITE)

void _set_window_layout(configuration: ConfigFile) virtual 🔗

Restaurer l'interface graphique du plugin et les données enregistrées par _get_window_layout(). Cette méthode est appelée pour chaque plugin au démarrage de l'éditeur. Utilisez le fichier configuration fourni pour lire vos données sauvegardées.

func _set_window_layout(configuration):
    $Window.position = configuration.get_value("MyPlugin", "window_position", Vector2())
    $Icon.modulate = configuration.get_value("MyPlugin", "icon_color", Couleur. WHITE)

void add_autoload_singleton(name: String, path: String) 🔗

Ajoute un script à path à la liste des scripts chargés automatiquement sous le nom name.


void add_context_menu_plugin(slot: ContextMenuSlot, plugin: EditorContextMenuPlugin) 🔗

Adds a plugin to the context menu. slot is the context menu where the plugin will be added.

Note: A plugin instance can belong only to a single context menu slot.


Button add_control_to_bottom_panel(control: Control, title: String, shortcut: Shortcut = null) 🔗

Obsolète : Use add_dock() instead, with EditorDock.default_slot set to DOCK_SLOT_BOTTOM.

Ajoute un contrôle au panneau inférieur (avec Sortie, Debug, Animation, etc.). Retourne une référence à un bouton qui est en dehors de l'arborescence de scène. Vous décidez de cacher / afficher le bouton au besoin. Lorsque votre plugin est désactivé, assurez-vous de supprimer votre commande personnalisée avec remove_control_from_bottom_panel() et de le libérer avec Node.queue_free().

shortcut est un raccourci qui, lorsqu'il est activé, va définir la visibilité du panneau inférieur. L'objet raccourci n'est défini que lorsque ce contrôle est ajouté au panneau inférieur.

Note Voir les raccourcis par défaut du panneau de bas de l'éditeur dans l'éditeur Paramètres pour inspiration. Par convention, ils utilisent tous le modificateur Alt.


void add_control_to_container(container: CustomControlContainer, control: Control) 🔗

Adds a custom control to a container in the editor UI.

Please remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it).

When your plugin is deactivated, make sure to remove your custom control with remove_control_from_container() and free it with Node.queue_free().


void add_control_to_dock(slot: DockSlot, control: Control, shortcut: Shortcut = null) 🔗

Obsolète : Use add_dock() instead.

Adds the control to a specific dock slot.

If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions.

When your plugin is deactivated, make sure to remove your custom control with remove_control_from_docks() and free it with Node.queue_free().

Optionally, you can specify a shortcut parameter. When pressed, this shortcut will open and focus the dock.


void add_custom_type(type: String, base: String, script: Script, icon: Texture2D) 🔗

Ajoute un type personnalisé, qui apparaîtra dans la liste des nœuds ou des ressources.

Lorsqu'un nœud ou une ressource donné est sélectionné, le type de base sera instancié (par exemple "Node3D", "Control", "Ressource"), puis le script sera chargé et défini sur cet objet.

Note : Le type de base est la classe moteur de base qui hérite de la hiérarchie de classe de ce type, pas de classes parentes de type personnalisé.

Vous pouvez utiliser la méthode virtuelle _handles() pour vérifier si votre objet personnalisé est modifié en vérifiant le script ou en utilisant le mot-clé is.

Pendant l'exécution, ce sera un objet simple avec un script de sorte que cette fonction n'a pas besoin d'être appelée à ce moment.

Note : Les types personnalisés ajoutés de cette façon ne sont pas de vraies classes. Ce ne sont que des assistants pour créer un nœud avec des scripts spécifiques.


void add_debugger_plugin(script: EditorDebuggerPlugin) 🔗

Adds a Script as debugger plugin to the Debugger. The script must extend EditorDebuggerPlugin.


void add_dock(dock: EditorDock) 🔗

Adds a new dock.

When your plugin is deactivated, make sure to remove your custom dock with remove_dock() and free it with Node.queue_free().


void add_export_platform(platform: EditorExportPlatform) 🔗

Registers a new EditorExportPlatform. Export platforms provides functionality of exporting to the specific platform.


void add_export_plugin(plugin: EditorExportPlugin) 🔗

Enregistre un nouveau EditorExportPlugin. Les greffons d'exportation sont utilisés pour effectuer des tâches lorsque le projet est exporté.

Voir add_inspector_plugin() pour un exemple sur comment enregistrer un greffon.


void add_import_plugin(importer: EditorImportPlugin, first_priority: bool = false) 🔗

Enregistre un nouveau EditorImportPlugin. Les plugins d'importation sont utilisés pour importer des éléments personnalisés et non reconnus comme un type personnalisé Resource.

Si first_priority vaut true, le nouveau plugin d'importation est inséré en premier dans la liste et a priorité sur les plugins préexistants.

Note : Si vous voulez importer des formats d'éléments 3D personnalisés, utilisez plutôt add_scene_format_importer_plugin().

Voir add_inspector_plugin() pour un exemple sur comment enregistrer un plugin.


void add_inspector_plugin(plugin: EditorInspectorPlugin) 🔗

Registers a new EditorInspectorPlugin. Inspector plugins are used to extend EditorInspector and provide custom configuration tools for your object's properties.

Note: Always use remove_inspector_plugin() to remove the registered EditorInspectorPlugin when your EditorPlugin is disabled to prevent leaks and an unexpected behavior.

const MyInspectorPlugin = preload("res://addons/your_addon/path/to/your/script.gd")
var inspector_plugin = MyInspectorPlugin.new()

func _enter_tree():
    add_inspector_plugin(inspector_plugin)

func _exit_tree():
    remove_inspector_plugin(inspector_plugin)

void add_node_3d_gizmo_plugin(plugin: EditorNode3DGizmoPlugin) 🔗

Registers a new EditorNode3DGizmoPlugin. Gizmo plugins are used to add custom gizmos to the 3D preview viewport for a Node3D.

See add_inspector_plugin() for an example of how to register a plugin.


void add_resource_conversion_plugin(plugin: EditorResourceConversionPlugin) 🔗

Registers a new EditorResourceConversionPlugin. Resource conversion plugins are used to add custom resource converters to the editor inspector.

See EditorResourceConversionPlugin for an example of how to create a resource conversion plugin.


void add_scene_format_importer_plugin(scene_format_importer: EditorSceneFormatImporter, first_priority: bool = false) 🔗

Registers a new EditorSceneFormatImporter. Scene importers are used to import custom 3D asset formats as scenes.

If first_priority is true, the new import plugin is inserted first in the list and takes precedence over pre-existing plugins.


void add_scene_post_import_plugin(scene_import_plugin: EditorScenePostImportPlugin, first_priority: bool = false) 🔗

Add an EditorScenePostImportPlugin. These plugins allow customizing the import process of 3D assets by adding new options to the import dialogs.

If first_priority is true, the new import plugin is inserted first in the list and takes precedence over pre-existing plugins.


void add_tool_menu_item(name: String, callable: Callable) 🔗

Adds a custom menu item to Project > Tools named name. When clicked, the provided callable will be called.


void add_tool_submenu_item(name: String, submenu: PopupMenu) 🔗

Adds a custom PopupMenu submenu under Project > Tools > name. Use remove_tool_menu_item() on plugin clean up to remove the menu.


void add_translation_parser_plugin(parser: EditorTranslationParserPlugin) 🔗

Registers a custom translation parser plugin for extracting translatable strings from custom files.


void add_undo_redo_inspector_hook_callback(callable: Callable) 🔗

Hooks a callback into the undo/redo action creation when a property is modified in the inspector. This allows, for example, to save other properties that may be lost when a given property is modified.

The callback should have 4 arguments: Object undo_redo, Object modified_object, String property and Variant new_value. They are, respectively, the UndoRedo object used by the inspector, the currently modified object, the name of the modified property and the new value the property is about to take.


EditorInterface get_editor_interface() 🔗

Obsolète : EditorInterface is a global singleton and can be accessed directly by its name.

Returns the EditorInterface singleton instance.


PopupMenu get_export_as_menu() 🔗

Returns the PopupMenu under Scene > Export As....


String get_plugin_version() const 🔗

Provide the version of the plugin declared in the plugin.cfg config file.


ScriptCreateDialog get_script_create_dialog() 🔗

Obtient le dialogue de l'éditeur utilisé pour faire des scripts.

Note : Les utilisateurs peuvent le configurer avant d'utiliser.

Attention : Supprimer et libérer ce nœud rend une partie de l'éditeur inutile et peut causer un accident.


EditorUndoRedoManager get_undo_redo() 🔗

Obtient l'objet annuler/refaire. La plupart des actions de l'éditeur peuvent être inutilisables, alors utilisez cet objet pour s'assurer que cela se produit quand ça en vaut la peine.


void hide_bottom_panel() 🔗

Réduit le panneau du bas.


void make_bottom_panel_item_visible(item: Control) 🔗

Rend l'élément spécifié visible dans le panneau du bas.


void queue_save_layout() 🔗

Met en file d'attente la sauvegarde de la disposition de l'éditeur du projet.


void remove_autoload_singleton(name: String) 🔗

Supprime un chargement automatique (Autoload) nommé name de la liste.


void remove_context_menu_plugin(plugin: EditorContextMenuPlugin) 🔗

Supprime le plugin de menu contextuel spécifié.


void remove_control_from_bottom_panel(control: Control) 🔗

Obsolète : Use remove_dock() instead.

Retire un contrôle du panneau du bas. Vous devez appeler manuellement Node.queue_free() pour supprimer ce contrôle.


void remove_control_from_container(container: CustomControlContainer, control: Control) 🔗

Retire un contrôle du conteneur spécifié. Vous devez appeler manuellement Node.queue_free() pour supprimer ce contrôle.


void remove_control_from_docks(control: Control) 🔗

Obsolète : Use remove_dock() instead.

Retire un contrôle de la barre d'outils. Vous devez appeler manuellement Node.queue_free() pour supprimer ce contrôle.


void remove_custom_type(type: String) 🔗

Supprime un type personnalisé ajouté par add_custom_type().


void remove_debugger_plugin(script: EditorDebuggerPlugin) 🔗

Removes the debugger plugin with given script from the Debugger.


void remove_dock(dock: EditorDock) 🔗

Removes dock from the available docks. You should manually call Node.queue_free() to free it.


void remove_export_platform(platform: EditorExportPlatform) 🔗

Supprime une plate-forme d'export enregistrée par add_export_platform().


void remove_export_plugin(plugin: EditorExportPlugin) 🔗

Supprime un plugin d'exportation enregistré par la add_export_plugin().


void remove_import_plugin(importer: EditorImportPlugin) 🔗

Supprime un plugin importé inscrit par add_import_plugin().


void remove_inspector_plugin(plugin: EditorInspectorPlugin) 🔗

Supprime un plugin d'inspecteur enregistré par add_inspector_plugin().


void remove_node_3d_gizmo_plugin(plugin: EditorNode3DGizmoPlugin) 🔗

Supprime un plugin manipulateur ajouté par add_node_3d_gizmo_plugin().


void remove_resource_conversion_plugin(plugin: EditorResourceConversionPlugin) 🔗

Supprime un plugin de conversion de ressource inscrit par add_resource_conversion_plugin().


void remove_scene_format_importer_plugin(scene_format_importer: EditorSceneFormatImporter) 🔗

Supprime un importeur de format scène inscrit par add_scene_format_importer_plugin().


void remove_scene_post_import_plugin(scene_import_plugin: EditorScenePostImportPlugin) 🔗

Supprime l'EditorScenePostImportPlugin, ajouté avec add_scene_post_import_plugin().


void remove_tool_menu_item(name: String) 🔗

Retire un menu name de Projet > Outils.


void remove_translation_parser_plugin(parser: EditorTranslationParserPlugin) 🔗

Supprime un plugin de parsing de traduction personnalisé enregistré par add_translation_parser_plugin().


void remove_undo_redo_inspector_hook_callback(callable: Callable) 🔗

Removes a callback previously added by add_undo_redo_inspector_hook_callback().


void set_dock_tab_icon(control: Control, icon: Texture2D) 🔗

Obsolète : Use EditorDock.dock_icon instead.

Sets the tab icon for the given control in a dock slot. Setting to null removes the icon.


void set_force_draw_over_forwarding_enabled() 🔗

Enables calling of _forward_canvas_force_draw_over_viewport() for the 2D editor and _forward_3d_force_draw_over_viewport() for the 3D editor when their viewports are updated. You need to call this method only once and it will work permanently for this plugin.


void set_input_event_forwarding_always_enabled() 🔗

Use this method if you always want to receive inputs from 3D view screen inside _forward_3d_gui_input(). It might be especially usable if your plugin will want to use raycast in the scene.


int update_overlays() const 🔗

Updates the overlays of the 2D and 3D editor viewport. Causes methods _forward_canvas_draw_over_viewport(), _forward_canvas_force_draw_over_viewport(), _forward_3d_draw_over_viewport() and _forward_3d_force_draw_over_viewport() to be called.