GD0401: Класс должен быть производным от Godot.GodotObject или производного класса

Идентификатор правила

GD0401

Категория

Использование

Исправление может быть как ломающим, так и не ломающим

Нарушение - при изменении цепочки наследования

Неразрушающий — при удалении атрибута [GlobalClass]

Включено по умолчанию

Да

Причина

Тип, аннотированный атрибутом [GlobalClass], не является производным от GodotObject.

Описание правила

[GlobalClass] не действует на типы, не производные от GodotObject. Каждый global class должен в конечном итоге быть производным от GodotObject, чтобы его можно было маршаллировать.

// 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 { }

Как устранить нарушения

Чтобы устранить нарушение этого правила, измените тип на производный от GodotObject или удалите атрибут [GlobalClass].

Когда следует подавлять предупреждения

Не подавляйте предупреждение из этого правила. Добавление [GlobalClass] к типу, который не является производным от GodotObject, — лёгкая ошибка, и это предупреждение помогает пользователям понять, что это может привести к непредвиденным ошибкам.