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.
Checking the stable version of the documentation...
Atualizando do Godot 4.0 para o Godot 4.1
Para a maioria dos jogos e aplicativos feitos com a versão 4.0, deve ser relativamente seguro migrar para a versão 4.1. Esta página tem a intenção de cobrir tudo o que você precisa para prestar atenção ao migrar seu projeto.
Breaking changes
Se você estiver migrando da versão 4.0 para a 4.1, as alterações significativas listadas aqui podem afetá-lo. As alterações são agrupadas por áreas/sistemas.
Aviso
A API GDExtension quebra completamente a compatibilidade na versão 4.1, portanto, não está incluída na tabela abaixo. Consulte a seção Atualizando seu GDExtension para 4.1 para obter mais informações.
Este artigo indica se cada alteração drástica afeta o GDScript e se a alteração drástica do C# é compatível com o binário ou compatível com o código-fonte:
Compatível com binários - Os binários existentes serão carregados e executados com sucesso sem recompilação, e o comportamento em tempo de execução não mudará.
Compatível com a fonte - O código fonte será compilado com sucesso, sem alterações, ao atualizar o Godot.
Componentes Principais
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
Fundamento |
||||
O método |
✔️ |
✔️ |
✔️ |
|
Objeto |
||||
O método |
✔️ |
❌ |
❌ |
|
Transformação 3D |
||||
O método |
✔️ |
✔️ |
✔️ |
|
UndoRedo |
||||
O método |
✔️ |
✔️ |
✔️ |
|
WorkerThreadPool |
||||
O método |
✔️ |
❌ |
✔️ |
Animação
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
Nó de Animação |
||||
Método |
❌ |
❌ |
❌ |
|
Adiciona o novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Adiciona o novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
AnimationNodeStateMachinePlayback |
||||
Alterado o tipo do retorno do método |
✔️ |
❌ |
❌ |
2D nodes
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
PathFollow2D |
||||
Propriedade |
❌ |
❌ |
❌ |
3D nodes
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
Geometria 3D |
||||
Alterado o tipo do parâmetro |
✔️ |
✔️ |
❌ |
|
Malha de Instância 3D |
||||
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Nó 3D |
||||
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
GUI nodes
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
CodeEdit |
||||
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Texto Formatado |
||||
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
|
Árvore |
||||
Adicionado novo parâmetro opcional |
✔️ |
✔️ |
✔️ |
Física
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
Área 2D |
||||
A propriedade |
❌ |
❌ |
❌ |
|
Área 3D |
||||
A propriedade |
❌ |
❌ |
❌ |
|
PhysicsDirectSpaceState2D |
||||
Alterado o tipo do retorno do método |
❌ |
❌ |
❌ |
|
PhysicsDirectSpaceState3D |
||||
Alterado o tipo do retorno do método |
❌ |
❌ |
❌ |
Renderização
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
RDShaderFile |
||||
Modificado o tipo de retorno do método |
✔️ |
❌ |
❌ |
|
Dispositivo de Renderização |
||||
Alterado o tipo do parâmetro |
✔️ |
✔️ |
❌ |
|
Dispositivo de Servidor |
||||
Modificado o tipo de retorno do método |
✔️ |
❌ |
❌ |
|
Ferramenta de Superfície |
||||
Alterado o tipo do parâmetro |
✔️ |
✔️ |
❌ |
Redes
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
WebRTCPeerConnectionExtension |
||||
Modificado o tipo de retorno do método |
✔️ |
❌ |
✔️ |
Plugins do editor
Mudança |
GDScript Compatible |
Compatível com C# Binário |
Compatível com fonte C# |
Introduzido |
|---|---|---|---|---|
AnimationTrackEditPlugin |
||||
Type |
❌ |
❌ |
❌ |
|
Interface do Editor |
||||
Alterada a herança do tipo |
✔️ |
❌ |
❌ |
|
Método |
✔️ |
❌ |
❌ |
|
Método |
✔️ |
❌ |
❌ |
|
EditorResourcePreviewGenerator |
||||
Adicionado novo parâmetro |
❌ |
❌ |
❌ |
|
Adicionado novo parâmetro |
❌ |
❌ |
❌ |
|
EditorUndoRedoManager |
||||
O método |
✔️ |
✔️ |
✔️ |
Behavior changes
In 4.1, some behavior changes have been introduced, which might require you to adjust your project.
Mudança |
Introduzido |
|---|---|
Contêiner de Sub Janela de Exibição |
|
Quando eventos de entrada devem ser reconhecidos pelo SubViewports e seus filhos, |
|
Vários nós |
|
Janela de Exibição |
|
Nós |
Atualizando seu GDExtension para 4.1
Para corrigir um bug sério, no Godot 4.1 tivemos que quebrar a compatibilidade binária de uma forma significativa e a compatibilidade de código-fonte de uma forma pequena.
Isso significa que GDExtensions feito para o Godot 4.0 precisarão ser recompiladas para o Godot 4.1 (usando a ramificação 4.1 do godot-cpp), com uma pequena alteração em seu código-fonte.
In Godot 4.0, your "entry_symbol" function looks something like this:
GDExtensionBool GDE_EXPORT example_library_init(const GDExtensionInterface *p_interface, const GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {
godot::GDExtensionBinding::InitObject init_obj(p_interface, p_library, r_initialization);
init_obj.register_initializer(initialize_example_module);
init_obj.register_terminator(uninitialize_example_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init();
}
Entretanto, para o Godot 4.1, deve ficar assim:
GDExtensionBool GDE_EXPORT example_library_init(GDExtensionInterfaceGetProcAddress p_get_proc_address, const GDExtensionClassLibraryPtr p_library, GDExtensionInitialization *r_initialization) {
godot::GDExtensionBinding::InitObject init_obj(p_get_proc_address, p_library, r_initialization);
init_obj.register_initializer(initialize_example_module);
init_obj.register_terminator(uninitialize_example_module);
init_obj.set_minimum_library_initialization_level(MODULE_INITIALIZATION_LEVEL_SCENE);
return init_obj.init();
}
There are two small changes:
O primeiro argumento muda de
const GDExtensionInterface *p_interfaceparaGDExtensionInterfaceGetProcAddress p_get_proc_addressO construtor da variável init_obj agora recebe
p_get_proc_addresscomo seu primeiro parâmetro
You also need to add an extra compatibility_minimum line to your .gdextension file, so that it looks something like:
[configuration]
entry_symbol = "example_library_init"
compatibility_minimum = 4.1
Isso permite que o Godot saiba que o seu GDExtension foi atualizado e está seguro para carregar no Godot 4.1.