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.

Classi globali in C#

Le classi globali (note anche come script denominati) sono tipi registrati nell'editor di Godot per poter essere utilizzati più comodamente. In GDScript, si creano inserendo la parola chiave class_name all'inizio di uno script. Questa pagina descrive come ottenere lo stesso effetto in C#.

  • Le classi globali sono visualizzate nelle finestre di dialogo Aggiungi nodo e Crea risorsa.

  • Se una proprietà esportata è una classe globale, l'ispettore limita l'assegnazione, consentendo solo istanze di quella classe globale o di qualsiasi classe derivata.

Le classi globali sono registrate con l'attributo [GlobalClass].

using Godot;

[GlobalClass]
public partial class MyNode : Node
{
}

Avvertimento

Il nome del file deve corrispondere al nome della classe, con distinzione tra maiuscole e minuscole. Ad esempio, una classe globale denominata "MyNode" deve avere il nome file MyNode.cs, non myNode.cs.

Il tipo MyNode sarà registrato come classe globale con lo stesso nome del tipo.

../../../_images/globalclasses_addnode.webp

La finestra Seleziona un nodo per la proprietà esportata MyNode filtra l'elenco dei nodi nella scena in modo che corrispondano alla restrizione di assegnazione.

public partial class Main : Node
{
    [Export]
    public MyNode MyNode { get; set; }
}
../../../_images/globalclasses_exportednode.webp

Se un tipo personalizzato non è registrato come classe globale, l'assegnazione è limitata al tipo di Godot su cui si basa il tipo personalizzato. Ad esempio, le assegnazioni dell'ispettore a un'esportazione del tipo MySimpleSprite2D sono limitate a Sprite2D e ai tipi derivati.

public partial class MySimpleSprite2D : Sprite2D
{
}

Se combinato con l'attributo [GlobalClass], l'attributo [Icon] consente di fornire un percorso a un'icona da mostrare quando la classe è visualizzata nell'editor.

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; }
}
../../../_images/globalclasses_createresource.webp

La classe Stats è una risorsa personalizzata registrata come classe globale. Esportare proprietà del tipo Stats permetterà di assegnare solo istanze di questo tipo di risorsa, e l'ispettore permetterà di creare e caricare facilmente istanze di questo tipo.

../../../_images/globalclasses_exportedproperty1.webp ../../../_images/globalclasses_exportedproperty2.webp

Avvertimento

L'editor Godot nasconderà queste classi personalizzate i cui nomi iniziano con il prefisso "Editor" nelle finestre di dialogo "Crea un nuovo nodo" o "Crea una nuova scena". Le classi si possono istanziare tramite i rispettivi nomi in fase di esecuzione, ma sono automaticamente nascoste dalle finestre dell'editor insieme ai nodi integrati specifici dell'editor Godot.