Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
GD0401: The class must derive from 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.