mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-03 05:48:42 +03:00
Add page about using global classes in C# (#6740)
Co-authored-by: Max Hilbrunner <mhilbrunner@users.noreply.github.com>
This commit is contained in:
@@ -263,6 +263,8 @@ Since Godot 4.0, nodes can be directly exported without having to use NodePaths.
|
||||
[Export]
|
||||
public Node Node { get; set; }
|
||||
|
||||
Custom node classes can also be used, see :ref:`doc_c_sharp_global_classes`.
|
||||
|
||||
Exporting NodePaths like in Godot 3.x is still possible, in case you need it:
|
||||
|
||||
.. code-block:: csharp
|
||||
@@ -296,7 +298,8 @@ Therefore, if you specify a type derived from Resource such as:
|
||||
private AnimationNode Resource;
|
||||
|
||||
The drop-down menu will be limited to AnimationNode and all
|
||||
its inherited classes.
|
||||
its inherited classes. Custom resource classes can also be used,
|
||||
see :ref:`doc_c_sharp_global_classes`.
|
||||
|
||||
It must be noted that even if the script is not being run while in the
|
||||
editor, the exported properties are still editable. This can be used
|
||||
|
||||
52
tutorials/scripting/c_sharp/c_sharp_global_classes.rst
Normal file
52
tutorials/scripting/c_sharp/c_sharp_global_classes.rst
Normal file
@@ -0,0 +1,52 @@
|
||||
.. _doc_c_sharp_global_classes:
|
||||
|
||||
C# global classes
|
||||
=================
|
||||
|
||||
Global classes (also known as named scripts) are types registered in Godot's editor so they can be used
|
||||
more conveniently. These classes show up in the *Add Node* and *Create Resource* dialogs,
|
||||
and :ref:`exported properties <doc_c_sharp_exports>` are restricted to instances of the global class or derived classes.
|
||||
Global classes are registered with the ``[GlobalClass]`` attribute.
|
||||
|
||||
.. code-block:: csharp
|
||||
|
||||
using Godot;
|
||||
|
||||
[GlobalClass]
|
||||
public partial class MyNode : Node
|
||||
{
|
||||
}
|
||||
|
||||
The ``MyNode`` type will be registered as a global class with the same name as the type's name.
|
||||
|
||||
.. image:: img/globalclasses_addnode.webp
|
||||
|
||||
The ``[Icon]`` attribute also allows to provide the path to an icon so it can
|
||||
be used as the class' icon in the editor.
|
||||
|
||||
.. code-block:: csharp
|
||||
|
||||
using Godot;
|
||||
|
||||
[GlobalClass, Icon("res://Stats/StatsIcon.svg")]
|
||||
public partial class Stats : Resource
|
||||
{
|
||||
[Export]
|
||||
public int Strength { get; set; }
|
||||
|
||||
[Export]
|
||||
public int Defense { get; set; }
|
||||
|
||||
[Export]
|
||||
public int Speed { get; set; }
|
||||
}
|
||||
|
||||
.. image:: img/globalclasses_createresource.webp
|
||||
|
||||
The ``Stats`` class is a custom resource registered as a global class. :ref:`Exporting properties <doc_c_sharp_exports>` of the
|
||||
type ``Stats`` will only allow instances of this resource type to be assigned, and the inspector
|
||||
will let you create and load instances of this type easily.
|
||||
|
||||
.. image:: img/globalclasses_exportedproperty1.webp
|
||||
|
||||
.. image:: img/globalclasses_exportedproperty2.webp
|
||||
BIN
tutorials/scripting/c_sharp/img/globalclasses_addnode.webp
Normal file
BIN
tutorials/scripting/c_sharp/img/globalclasses_addnode.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
@@ -12,4 +12,5 @@ C#
|
||||
c_sharp_variant
|
||||
c_sharp_signals
|
||||
c_sharp_exports
|
||||
c_sharp_global_classes
|
||||
c_sharp_style_guide
|
||||
|
||||
Reference in New Issue
Block a user