瀏覽代碼

Fix C# main screen plugin example and document C# `EditorInterface` singleton (#9399)

* 🐞 fix(plugins): fix syntax errors

Correct the syntax errors in the plugin development section, specifically by modifying 'EditorInterface' to 'EditorInterface.Singleton' in the C# portion. It is imperative to utilize the singleton pattern here to ensure the plugin successfully compiles.

* 🐞 fix(different): ADD exceptions

Provide explanations for Singleton exceptions of `EditorInterface`
easterNday 7 月之前
父節點
當前提交
f967e9e135

+ 3 - 3
tutorials/plugins/editor/making_main_screen_plugins.rst

@@ -92,7 +92,7 @@ Add five extra methods such that the script looks like this:
 
         public override Texture2D _GetPluginIcon()
         {
-            return EditorInterface.GetEditorTheme().GetIcon("Node", "EditorIcons");
+            return EditorInterface.Singleton.GetEditorTheme().GetIcon("Node", "EditorIcons");
         }
     }
     #endif
@@ -210,7 +210,7 @@ Here is the full plugin script:
         {
             MainPanelInstance = (Control)MainPanel.Instantiate();
             // Add the main panel to the editor's main viewport.
-            EditorInterface.GetEditorMainScreen().AddChild(MainPanelInstance);
+            EditorInterface.Singleton.GetEditorMainScreen().AddChild(MainPanelInstance);
             // Hide the main panel. Very much required.
             _MakeVisible(false);
         }
@@ -244,7 +244,7 @@ Here is the full plugin script:
         public override Texture2D _GetPluginIcon()
         {
             // Must return some kind of Texture for the icon.
-            return EditorInterface.GetEditorTheme().GetIcon("Node", "EditorIcons");
+            return EditorInterface.Singleton.GetEditorTheme().GetIcon("Node", "EditorIcons");
         }
     }
     #endif

+ 11 - 0
tutorials/scripting/c_sharp/c_sharp_differences.rst

@@ -363,6 +363,17 @@ Example:
 
     Input.Singleton.JoyConnectionChanged += Input_JoyConnectionChanged;
 
+If you are developing main screen plugins using C#, it is essential to note the 
+distinctions between ``GDScript`` and ``C#`` during setup. Unlike in ``GDScript``, 
+this portion is not a static class in ``C#``. Consequently, you must employ the singleton 
+pattern to obtain an instance of the ``EditorInterface``:
+
+====================  ==============================================================
+GDScript              C#
+====================  ==============================================================
+``EditorInterface``        ``EditorInterface.Singleton``
+====================  ==============================================================
+
 String
 ------