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.

GD0401: A classe deve derivar de Godot.GodotObject ou de uma classe derivada

ID da Regra

GD0401

Categoria

Uso

A correção altera a compatibilidade (breaking) ou não altera (non-breaking)

Altera a compatibilidade (breaking) - Se a cadeia de herança for alterada

Não altera a compatibilidade (non-breaking) - Se o atributo [GlobalClass] for removido

Ativado por padrão

Sim

Causa

Um tipo anotado com o atributo [GlobalClass] não deriva de GodotObject.

Descrição da regra

O [GlobalClass] não tem efeito para tipos que não derivam de GodotObject. Toda classe global deve, em última análise, derivar de GodotObject para que possa passar por marshalling.

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

Como corrigir violações

Para corrigir uma violação desta regra, altere o tipo para derivar de GodotObject ou remova o atributo [GlobalClass].

Quando suprimir avisos

Não suprima um aviso desta regra. Adicionar o [GlobalClass] a um tipo que não deriva de GodotObject é um erro fácil de cometer e este aviso ajuda os usuários a perceberem que isso pode resultar em erros inesperados.