Mise à niveau de Godot 4.2 vers Godot 4.3

Pour la plupart des jeux et applications fabriqués en 4.2, il devrait être relativement sûr de migrer en 4.3. Cette page a l'intention de couvrir tout ce dont vous avez besoin de faire attention à lors de la migration de votre projet.

Breaking changes

Si vous migrez de la 4.2 à la 4.3, les changements cassants énumérés ici pourraient vous affecter. Les changements sont regroupés par zones/systèmes.

This article indicates whether each breaking change affects GDScript and whether the C# breaking change is binary compatible or source compatible:

  • Binaire compatible - Les binaires existantes vont charger et s'exécuter avec succès sans recompilation, et le comportement lors de l'exécution ne changera pas.

  • Compatible source - Le code source compilera avec succès sans changement lors de la mise à niveau de Godot.

GDExtension

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

GDExtension

Méthode close_library supprimée

GH-88418

Méthode initialize_library supprimée

GH-88418

Méthode open_library supprimée

GH-88418

Comme il était pratiquement impossible d'utiliser ces méthodes de manière utile, ces méthodes ont été supprimées. Utilisez GDExtensionManager::load_extension et GDExtensionManager::unload_extension à la place pour charger et décharger correctement une GDExtension.

Animation

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

Animation

La méthode position_track_interpolate ajoute un nouveau paramètre optionnel backward

✔️

|✔️ avec compatibilité|

✔️

GH-86629

La méthode rotation_track_interpolate ajoute un nouveau paramètre optionnel backward

✔️

|✔️ avec compatibilité|

✔️

GH-86629

La méthode scale_track_interpolate ajoute un nouveau paramètre optionnel backward

✔️

|✔️ avec compatibilité|

✔️

GH-86629

La méthode blend_shape_track_interpolate ajoute un nouveau paramètre optionnel backward

✔️

|✔️ avec compatibilité|

✔️

GH-86629

La méthode value_track_interpolate ajoute un nouveau paramètre optionnel backward

✔️

|✔️ avec compatibilité|

✔️

GH-86629

La méthode track_find_key ajoute un nouveau paramètre optionnel limit

✔️

|✔️ avec compatibilité|

✔️

GH-86661

La méthode track_find_key ajoute un nouveau paramètre optionnel backward

✔️

|✔️ avec compatibilité|

✔️

GH-92861

AnimationMixer

La méthode _post_process_key_value change le type du paramètre object de Object en uint64

✔️

GH-86687

Skeleton3D

La méthode add_bone change de type de retour de void en uint64

✔️

✔️

GH-88791

Le signal bone_pose_changed est remplacé par skeleton_updated

GH-90575

BoneAttachment3D

La méthode on_bone_pose_update est remplacée par on_skeleton_update

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-90575

Nœuds GUI

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

AcceptDialog

La méthode register_text_enter change le type du paramètre line_edit` de Control à LineEdit

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-89419

La méthode remove_button change le type du paramètre button` de Control à Button

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-89419

Physique

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

PhysicsShapeQueryParameters3D

La propriété motion change de type, de Vector2` à Vector3

GH-85393

Note

Dans C#, l'énumération PhysicsServer3D.G6DofJointAxisFlag casse la compatibilité en raison de la façon dont le générateur de liaisons détecte le préfixe enum. De nouveaux membres ont été ajoutés dans GH-89851 à l’énumération, ce qui a forcé les membres de l'énumération à être renommés.

Rendu

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

RenderingDevice

Le champ d'énumération FinalAction.FINAL_ACTION_CONTINUE change de valeur de 2 à 0

✔️

GH-84976

Le champ d'énumération InitialAction.INITIAL_ACTION_CLEAR change de valeur de 0 à 1

✔️

GH-84976

Le champ d'énumération InitialAction.INITIAL_ACTION_CLEAR_REGION_CONTINUE change de valeur de 2 à 1

✔️

GH-84976

Le champ d'énumération InitialAction.INITIAL_ACTION_CONTINUE change de valeur de 5 à 0

✔️

GH-84976

Le champ d'énumération InitialAction.INITIAL_ACTION_DROP change de valeur de 4 à 2

✔️

GH-84976

Le champ d'énumération InitialAction.INITIAL_ACTION_KEEP change de valeur de 3 à 0

✔️

GH-84976

La méthode buffer_clear supprime le paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode buffer_update supprime le paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode compute_list_begin supprime son paramètre allow_draw_overlap

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode compute_list_end supprime le paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode draw_list_begin supprime le paramètre storage_textures

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode draw_list_end supprime le paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode texture_clear supprime le paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode texture_copy supprime son paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode texture_resolve_multisample supprime son paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

La méthode texture_update supprime le paramètre post_barrier

✔️

|✔️ avec compatibilité|

|✔️ avec compatibilité|

GH-84976

RenderingServer

La méthode environment_set_fog ajoute un nouveau paramètre optionnel fog_mode

✔️

|✔️ avec compatibilité|

✔️

GH-84792

RenderSceneBuffersRD

La méthode get_color_layer ajoute un nouveau paramètre optionnel msaa

✔️

|✔️ avec compatibilité|

✔️

GH-80214

La méthode get_depth_layer ajoute un nouveau paramètre optionnel msaa

✔️

|✔️ avec compatibilité|

✔️

GH-80214

La méthode get_velocity_layer ajoute un nouveau paramètre optionnel msaa

✔️

|✔️ avec compatibilité|

✔️

GH-80214

La méthode get_color_texture ajoute un nouveau paramètre optionnel msaa

✔️

|✔️ avec compatibilité|

✔️

GH-80214

La méthode get_depth_texture ajoute un nouveau paramètre optionnel msaa

✔️

|✔️ avec compatibilité|

✔️

GH-80214

La méthode get_velocity_texture ajoute un nouveau paramètre optionnel msaa

✔️

|✔️ avec compatibilité|

✔️

GH-80214

Note

Bien que les valeurs des champs d'énumération dans RenderingDevice. InitialAction et RenderingDevice.FinalAction ont changé, la seule méthode qui les consommait (draw_list_begin) a ajouté une méthode de compatibilité qui supporte les anciennes valeurs. En pratique, cela ne casse pas la compatibilité.

Note

Dans C#, l'énumération RenderingDevice. DriverResource casse la compatibilité en raison de la façon dont le générateur de liaisons détecte le préfixe enum. De nouveaux membres ont été ajoutés dans GH-83452 à l’énumération, ce qui a forcé les membres de l'énumération à être renommés.

Texte

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

Font

La méthode find_variation ajoute un nouveau paramètre baseline_offset optionnel

✔️

|✔️ avec compatibilité|

✔️

GH-87668

RichTextLabel

La méthode push_meta ajoute un nouveau paramètre optionnel underline_mode

✔️

|✔️ avec compatibilité|

✔️

GH-89024

TextServer

La méthode shaped_text_get_word_breaks ajoute un nouveau paramètre optionnel skip_grapheme_flags

✔️

|✔️ avec compatibilité|

✔️

GH-90732

TextServerExtension

La méthode _shaped_text_get_word_breaks ajoute un nouveau paramètre skip_grapheme_flags

GH-90732

Audio

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

AudioStreamPlaybackPolyphonic

La méthode play_stream ajoute de nouveaux paramètres optionnels, playback_type et bus

✔️

|✔️ avec compatibilité|

✔️

GH-91382

TileMap

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

TileData

La méthode get_navigation_polygon ajoute de nouveaux paramètres optionnels flip_h, flip_v, et transpose

✔️

|✔️ avec compatibilité|

✔️

GH-84660

La méthode get_occluder ajoute de nouveaux paramètres optionnels flip_h, flip_v, et transpose

✔️

|✔️ avec compatibilité|

✔️

GH-84660

XR

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

WebXRInterface

La méthode get_input_source_tracker change de type de retour de XRPositionalTracker en XRControllerTracker

✔️

✔️

GH-90645

XRServer

La méthode get_tracker change de type de retour de XRPositionalTracker en XRTracker

✔️

GH-90645

Extensions pour l'éditeur

Modifications

Compatible GDScript

Compatible binaire C#

Compatible source C#

Intégré

EditorInspectorPlugin

La méthode add_property_editor ajoute un nouveau paramètre optionnel label

✔️

|✔️ avec compatibilité|

✔️

GH-92322

EditorPlugin

La méthode add_control_to_bottom_panel ajoute un nouveau paramètre optionnel shortcut

✔️

|✔️ avec compatibilité|

✔️

GH-88081

La méthode add_control_to_dock ajoute un nouveau paramètre optionnel shortcut

✔️

|✔️ avec compatibilité|

✔️

GH-88081

EditorSceneFormatImporterFBX

Type renommé en EditorSceneFormatImporterFBX2GLTF

GH-81746

Changements de comportement

En 4.3, certains changements de comportement ont été introduits, ce qui pourrait vous obliger à ajuster votre projet.

Core

Note

La sérialisation des binaires a été modifiée pour résoudre certains problèmes avec la sérialisation d'Objects scriptés et d'Arrays typés (GH-78219). Cela casse la compatibilité pour l'encodage/décodage de script.

Note

PackedByteArray est maintenant capable d'utiliser un encodage base64 plus compact pour le stockage. Mais le compromis est que cela casse la compatibilité, ce qui signifie que les anciennes versions de Godot peuvent ne pas être en mesure d'ouvrir des ressources sauvegardées par la 4.3 (GH-89186).

Afin de maximiser la compatibilité, ce nouveau format de stockage ne sera activé que pour les ressources et les scènes qui contiennent de grands PackedByteArrays. Le support pour ce nouveau format sera également ajouté dans les mises à jour de patch pour les anciennes versions de Godot. Une fois que toutes les versions supportées de Godot seront en mesure de lire le nouveau format, nous allons graduellement retirer les mesures de compatibilité et avoir toutes les ressources et les scènes qui utilisent le nouveau format de stockage.

Note

En C#, l'implémentation de Transform3D.InterpolateWith a été corrigée pour utiliser le bon ordre des opérations, en appliquant la rotation avant l'échelle (GH-89843).

Note

En C#, l'implémentation de Aabb.GetSupport a été corrigée pour renvoyer correctement le vecteur support (GH-88919).

Note

En C#, l'implémentation de ToString des types Variant utilise par défaut InvariantCulture (GH-89547), ce qui signifie que Vector2(1.2, 3.4) est formaté en utilisant . comme séparateur décimal indépendamment de la langue du système d'exploitation sur lequel le programme s'exécute.

Animation

Note

AnimationMixer a remplacé son mode Capture par une nouvelle fonctionnalité Capture qui fonctionne beaucoup mieux que l'ancienne, cela remplace le cache existant (GH-86715).

Note

AnimationNode a un processus retravaillé pour récupérer les informations de temps sémantique. Cela garantit que le comportement lié au temps fonctionne comme prévu, mais modifie le comportement de mélange. Les implémenteurs de la méthode virtuelle _process doivent également noter que cette méthode est maintenant dépréciée et sera remplacée par une nouvelle à l`avenir (GH-87171).

Plus d'informations sur les changements apportés à l'animation se trouvent dans l'article Migrating Animations from Godot 4.0 to 4.3.

Nœuds GUI

Note

La couleur des contours de police par défaut a été changée de blanc à noir (GH-54641).

Note

La propriété auto_translate est dépréciée en faveur de la propriété auto_translate_mode qui est maintenant dans Node (GH-87530). La valeur par défaut pour auto_translate_mode est AUTO_TRANSLATE_INHERIT, ce qui signifie que les nœuds héritent de la valeur auto_translate_mode de leur parent. Cela signifie que les nœuds existants avec la propriété auto_translate définie à true peuvent ne plus être traduits s'ils sont des enfants d'un nœud avec la propriété auto_translate définie à false.

Multijoueur

Note

Le protocole de cache de SceneMultiplayer a été modifié pour envoyer l'ID reçu au lieu du chemin de nœud lors de l'envoi d'un paquet de confirmation d'enlèvement de nœud (GH-90027).

C'est un changement cassant pour le protocole multijoueur de haut niveau le rendant incompatible avec les versions précédentes de Godot. Mettez à niveau vos versions de serveur et de client en Godot 4.3 pour gérer ce changement élégamment.

Notez que les facilités multijoueurs de haut niveau sont censées être uniquement compatibles avec un serveur et un client utilisant la même version de Godot. Il est recommandé d'implémenter une sorte de vérification de version.

Rendu

Note

Les décalques convertissent maintenant la couleur modulée d'une couleur sRGB à une couleur linéaire, comme toutes les autres entrées, pour assurer un mélange approprié (GH-89849). Les projets existants qui utilisaient la propriété de modulation du décalque remarqueront un changement dans leurs visuels.

Note

La technique du buffer de profondeur Z inversé est maintenant implémentée. Cela peut casser la compatibilité de certains shaders. Lire l'article Introducing Reverse Z (AKA I'm sorry for breaking your shader) pour plus d'information et de guide sur comment corriger les scénarios communs.

TileMap

Note

Les couches TileMap ont été déplacées vers des nœuds individuels (GH-87379 et GH-89179).

Android

Note

Les autorisations Android ne sont plus demandées automatiquement parce qu'elles sont contraires aux meilleures pratiques recommandées (GH-87080). Utilisez la méthode request_permission dans OS et le signal on_request_permissions_result dans MainLoop pour demander des permissions et attendre la réponse de l'utilisateur.