Migrar desde Godot 4.2 a Godot 4.3

For most games and apps made with 4.2 it should be relatively safe to migrate to 4.3. This page intends to cover everything you need to pay attention to when migrating your project.

Cambios importantes

Si estás migrando de 4.2 a 4.3, los cambios importantes que se enumeran aquí podrían afectarle. Los cambios se agrupan por áreas/sistemas.

Este artículo indica si cada cambio significativo afecta a GDScript y si el cambio significativo en C# es compatible binario o compatible con el código fuente:

  • Binary compatible - Existing binaries will load and execute successfully without recompilation, and the runtime behavior won't change.

  • Compatible con el código fuente: el código fuente se compila correctamente sin ningún cambio al actualizar Godot.

GDExtensión

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

GDExtension

Método close_library eliminado

GH-88418

Method initialize_library removed

GH-88418

Propiedad open_library eliminada

GH-88418

Dado que era prácticamente imposible usar estos métodos de forma útil, se han eliminado. En su lugar, utiliza GDExtensionManager::load_extension y GDExtensionManager::unload_extension para cargar y descargar correctamente una GDExtension.

Animación

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

Animación

El método position_track_interpolate añade un nuevo parámetro opcional backward

✔️

|✔️ compatible|

✔️

GH-86629

El método rotation_track_interpolate añade un nuevo parámetro opcional backward

✔️

|✔️ compatible|

✔️

GH-86629

Method scale_track_interpolate adds a new backward optional parameter

✔️

|✔️ compatible|

✔️

GH-86629

Method blend_shape_track_interpolate adds a new backward optional parameter

✔️

|✔️ compatible|

✔️

GH-86629

El método value_track_interpolate añade un nuevo parámetro opcional backward

✔️

|✔️ compatible|

✔️

GH-86629

El método track_find_key añade un nuevo parámetro opcional limit

✔️

|✔️ compatible|

✔️

GH-86661

El método track_find_key añade un nuevo parámetro opcional backward

✔️

|✔️ compatible|

✔️

GH-92861

AnimationMixer

El método _post_process_key_value cambia el tipo del parámetro object de Object a uint64

✔️

GH-86687

Skeleton3D

El método add_bone``cambia el tipo de retorno de ``void a int32

✔️

✔️

GH-88791

La señal bone_pose_changed se reemplazó por skeleton_updated

GH-90575

BoneAttachment3D

El método on_bone_pose_update se reemplazó por on_skeleton_update

✔️

|✔️ compatible|

|✔️ compatible|

GH-90575

Nodos GUI

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

AcceptDialog

El método register_text_enter``cambia el tipo del parámetro ``line_edit de Control a LineEdit

✔️

|✔️ compatible|

|✔️ compatible|

GH-89419

Method remove_button changes parameter button type from Control to Button

✔️

|✔️ compatible|

|✔️ compatible|

GH-89419

Física

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

PhysicsShapeQueryParameters3D

Property motion changes type from Vector2 to Vector3

GH-85393

Nota

En C#, la enumeración PhysicsServer3D.G6DofJointAxisFlag rompe la compatibilidad debido a la forma en que el generador de enlaces detecta el prefijo de enumeración. Se añadieron nuevos miembros en GH-89851 a la enumeración, lo que provocó que se cambiara el nombre de los miembros de la enumeración.

Renderizado

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

RenderingDevice

Enum field FinalAction.FINAL_ACTION_CONTINUE changes value from 2 to 0

✔️

GH-84976

Enum field InitialAction.INITIAL_ACTION_CLEAR changes value from 0 to 1

✔️

GH-84976

Enum field InitialAction.INITIAL_ACTION_CLEAR_REGION_CONTINUE changes value from 2 to 1

✔️

GH-84976

Enum field InitialAction.INITIAL_ACTION_CONTINUE changes value from 5 to 0

✔️

GH-84976

Enum field InitialAction.INITIAL_ACTION_DROP changes value from 4 to 2

✔️

GH-84976

Enum field InitialAction.INITIAL_ACTION_KEEP changes value from 3 to 0

✔️

GH-84976

El método buffer_clear elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método buffer_update elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método compute_list_begin elimina el parámetro allow_draw_overlap

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método compute_list_end elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método draw_list_begin elimina el parámetro storage_textures

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método draw_list_end elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método texture_clear elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método texture_copy elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método texture_resolve_multisample elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

El método texture_update elimina el parámetro post_barrier

✔️

|✔️ compatible|

|✔️ compatible|

GH-84976

RenderingServer

El método environment_set_fog agrega un nuevo parámetro opcional fog_mode

✔️

|✔️ compatible|

✔️

GH-84792

RenderSceneBuffersRD

Method get_color_layer adds a new msaa optional parameter

✔️

|✔️ compatible|

✔️

GH-80214

Method get_depth_layer adds a new msaa optional parameter

✔️

|✔️ compatible|

✔️

GH-80214

Method get_velocity_layer adds a new msaa optional parameter

✔️

|✔️ compatible|

✔️

GH-80214

Method get_color_texture adds a new msaa optional parameter

✔️

|✔️ compatible|

✔️

GH-80214

Method get_depth_texture adds a new msaa optional parameter

✔️

|✔️ compatible|

✔️

GH-80214

Method get_velocity_texture adds a new msaa optional parameter

✔️

|✔️ compatible|

✔️

GH-80214

Nota

Aunque los valores de los campos de enumeración en RenderingDevice.InitialAction y RenderingDevice.FinalAction cambiaron, el único método que los consumía (draw_list_begin) agregó un método de compatibilidad que admite los valores antiguos. Por lo tanto, en la práctica, no afecta la compatibilidad.

Nota

In C#, the enum RenderingDevice.DriverResource breaks compatibility because of the way the bindings generator detects the enum prefix. New members were added in GH-83452 to the enum that caused the enum members to be renamed.

Text

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

Fuente

Method find_variation adds a new baseline_offset optional parameter

✔️

|✔️ compatible|

✔️

GH-87668

RichTextLabel

Method push_meta adds a new underline_mode optional parameter

✔️

|✔️ compatible|

✔️

GH-89024

TextServer

Method shaped_text_get_word_breaks adds a new optional skip_grapheme_flags parameter

✔️

|✔️ compatible|

✔️

GH-90732

TextServerExtension

Method _shaped_text_get_word_breaks adds a new skip_grapheme_flags parameter

GH-90732

Audio

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

AudioStreamPlaybackPolyphonic

Method play_stream adds new playback_type, and bus optional parameters

✔️

|✔️ compatible|

✔️

GH-91382

TileMap

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

TileData

Method get_navigation_polygon adds new flip_h, flip_v, and transpose optional parameters

✔️

|✔️ compatible|

✔️

GH-84660

Method get_occluder adds new flip_h, flip_v, and transpose optional parameters

✔️

|✔️ compatible|

✔️

GH-84660

XR

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

WebXRInterface

Method get_input_source_tracker changes return type from XRPositionalTracker to XRControllerTracker

✔️

✔️

GH-90645

XRServer

Method get_tracker changes return type from XRPositionalTracker to XRTracker

✔️

GH-90645

Plugins del editor

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

EditorInspectorPlugin

Method add_property_editor adds a new label optional parameter

✔️

|✔️ compatible|

✔️

GH-92322

EditorPlugin

Method add_control_to_bottom_panel adds a new shortcut optional parameter

✔️

|✔️ compatible|

✔️

GH-88081

Method add_control_to_dock adds a new shortcut optional parameter

✔️

|✔️ compatible|

✔️

GH-88081

EditorSceneFormatImporterFBX

Tipo renombrado a EditorSceneFormatImporterFBX2GLTF

GH-81746

Cambios de comportamiento

In 4.3, some behavior changes have been introduced, which might require you to adjust your project.

Núcleo

Nota

Se modificó la serialización binaria para corregir algunos problemas con la serialización de objetos con scripts y matrices tipificadas (GH-78219). Esto afecta la compatibilidad con la codificación/decodificación de scripts.

Nota

PackedByteArray ahora puede usar una codificación base64 más compacta para el almacenamiento. Sin embargo, esto implica que se rompe la compatibilidad, lo que significa que las versiones anteriores de Godot podrían no poder abrir los recursos guardados por la versión 4.3 (GH-89186).

Para maximizar la compatibilidad, este nuevo formato de almacenamiento solo estará disponible por ahora para recursos y escenas que contengan PackedByteArrays grandes. También se añadirá compatibilidad con este nuevo formato en las actualizaciones de parches para versiones anteriores de Godot. Una vez que todas las versiones compatibles de Godot puedan leer el nuevo formato, retiraremos gradualmente las medidas de compatibilidad y todos los recursos y escenas utilizarán el nuevo formato de almacenamiento.

Nota

En C#, se corrigió la implementación de Transform3D.InterpolateWith para usar el orden correcto de operaciones, aplicando la rotación antes de la escala (GH-89843).

Nota

En C#, se corrigió la implementación de Aabb.GetSupport para devolver correctamente el vector de soporte (GH-88919).

Nota

En C#, la implementación de ToString de los tipos Variant ahora utiliza de manera predeterminada InvariantCulture (GH-89547), lo que significa que Vector2(1.2, 3.4) se formatea utilizando . como separador decimal independientemente del idioma del sistema operativo en el que se ejecuta el programa.

Animación

Nota

AnimationMixer reemplazó su modo de Captura con una nueva función de Captura que funciona mucho mejor que la anterior. Esta reemplaza la caché existente (GH-86715).

Nota

AnimationNode cuenta con un proceso rediseñado para recuperar la información temporal semántica. Esto garantiza que el comportamiento temporal funcione correctamente, pero modifica el comportamiento de fusión. Los implementadores del método virtual _process deben tener en cuenta que este método está obsoleto y será reemplazado por uno nuevo en el futuro (GH-87171).

More information about the changes to Animation can be found in the Migrating Animations from Godot 4.0 to 4.3 article.

Nodos GUI

Nota

El color del contorno de la fuente predeterminada se cambió de blanco a negro (GH-54641).

Nota

La propiedad auto_translate ha quedado obsoleta y se ha sustituido por la propiedad auto_translate_mode, que ahora se encuentra en Node (GH-87530). El valor predeterminado de auto_translate_mode es AUTO_TRANSLATE_INHERIT, lo que significa que los nodos heredan el valor de auto_translate_mode de su padre. Esto significa que los nodos existentes con la propiedad auto_translate establecida en true ya no podrán traducirse si son hijos de un nodo con la propiedad auto_translate establecida en false.

Multijugador

Nota

Se modificó el protocolo de almacenamiento en caché SceneMultiplayer para enviar la ID recibida en lugar de la ruta del nodo al enviar un paquete de confirmación de eliminación de nodo (GH-90027).

Este es un cambio radical que afecta al protocolo multijugador de alto nivel, lo que lo hace incompatible con versiones anteriores de Godot. Actualice tanto su servidor como su cliente a Godot 4.3 para gestionar este cambio correctamente.

Ten en cuenta que las funciones multijugador de alto nivel solo son compatibles con servidores y clientes que usen la misma versión de Godot. Se recomienda implementar algún tipo de verificación de versiones.

Renderizado

Nota

Los decals ahora convierten el color del modulate de sRGB a color lineal, al igual que el resto de las entradas, para asegurar una mezcla adecuada (GH-89849). Los proyectos existentes que usaban la propiedad modulate del decal notarán un cambio en su apariencia visual.

Nota

Ahora se implementó la técnica de Reverse Z en el depth buffer. Esto puede romper la compatibilidad con algunos shaders. Léase el artículo Introducción a Reverse Z (Lo siento por romper tu shader) para más información y guía sobre cómo solucionar los casos más comunes.

TileMap

Nota

Las capas de TileMap se movieron a nodos individuales (GH-87379 y GH-89179).

Android

Nota

Ya no se solicitan automáticamente los permisos en Android, porque eso va en contra de las buenas prácticas recomendadas (GH-87080). Usa el método request_permission de OS y la señal on_request_permissions_result de MainLoop para solicitar permisos y esperar la respuesta del usuario.