GD0401: Класс должен быть производным от Godot.GodotObject или производного класса
Идентификатор правила |
GD0401 |
Категория |
Использование |
Исправление может быть как ломающим, так и не ломающим |
Нарушение - при изменении цепочки наследования Неразрушающий — при удалении атрибута |
Включено по умолчанию |
Да |
Причина
Тип, аннотированный атрибутом [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, — лёгкая ошибка, и это предупреждение помогает пользователям понять, что это может привести к непредвиденным ошибкам.