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 [GlobalClass] entfernt wird

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.