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.
Checking the stable version of the documentation...
GD0401: The class must derive from Godot.GodotObject or a derived class
Regel-ID |
GD0401 |
Kategorie |
Verwendung |
Fix führt oder führt nicht zu Kompatibilitätsbruch |
Kompatibilitätsbruch - Wenn Sie die Vererbungskette ändern Kein Kompatibilitätsbruch - Wenn das Attribut |
Standardmäßig aktiviert |
Ja |
Ursache
Ein Typ, der mit dem Attribut [GlobalClass]
annotiert ist, erbt nicht von GodotObject
.
Regelbeschreibung
Die [GlobalClass]
hat keinen Effekt für Typen, die nicht von GodotObject
erben. Jede globale Klasse muss letztendlich von GodotObject
erben, damit sie gemarshalled werden kann.
// This type is not registered as a global class because it doesn't derive from GodotObject.
[GlobalClass]
class SomeType { }
// This type is a global class because it derives from Godot.Node
// which ultimately derives from GodotObject.
[GlobalClass]
class MyNode : Node { }
// This type is a global class because it derives from Godot.Resource
// which ultimately derives from GodotObject.
[GlobalClass]
class MyResource : Resource { }
Wie man Verstöße behebt
Um einen Verstoß gegen diese Regel zu beheben, ändern Sie den Typ so, dass er von GodotObject
erbt oder entfernen Sie das Attribut [GlobalClass]
.
Wann man Warnungen unterdrücken sollte
Unterdrücken Sie nicht eine Warnung zu dieser Regel. Das Hinzufügen von [GlobalClass]
zu einem Typ, der nicht von GodotObject
erbt, ist ein leicht zu begehender Schnitzer, und diese Warnung hilft den Benutzern zu erkennen, dass dies zu unerwarteten Fehlern führen kann.