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 |
❌ |
❌ |
❌ |
|
Méthode |
❌ |
❌ |
❌ |
|
Méthode |
❌ |
❌ |
❌ |
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 |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
AnimationMixer |
||||
La méthode |
✔️ |
❌ |
❌ |
|
Skeleton3D |
||||
La méthode |
✔️ |
❌ |
✔️ |
|
Le signal |
❌ |
❌ |
❌ |
|
BoneAttachment3D |
||||
La méthode |
✔️ |
Nœuds GUI
Modifications |
Compatible GDScript |
Compatible binaire C# |
Compatible source C# |
Intégré |
|---|---|---|---|---|
AcceptDialog |
||||
La méthode |
✔️ |
|||
La méthode |
✔️ |
Physique
Modifications |
Compatible GDScript |
Compatible binaire C# |
Compatible source C# |
Intégré |
|---|---|---|---|---|
PhysicsShapeQueryParameters3D |
||||
La propriété |
❌ |
❌ |
❌ |
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 |
✔️ |
❌ |
❌ |
|
Le champ d'énumération |
✔️ |
❌ |
❌ |
|
Le champ d'énumération |
✔️ |
❌ |
❌ |
|
Le champ d'énumération |
✔️ |
❌ |
❌ |
|
Le champ d'énumération |
✔️ |
❌ |
❌ |
|
Le champ d'énumération |
✔️ |
❌ |
❌ |
|
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
La méthode |
✔️ |
|||
RenderingServer |
||||
La méthode |
✔️ |
✔️ |
||
RenderSceneBuffersRD |
||||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
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 |
✔️ |
✔️ |
||
RichTextLabel |
||||
La méthode |
✔️ |
✔️ |
||
TextServer |
||||
La méthode |
✔️ |
✔️ |
||
TextServerExtension |
||||
La méthode |
❌ |
❌ |
❌ |
Audio
Modifications |
Compatible GDScript |
Compatible binaire C# |
Compatible source C# |
Intégré |
|---|---|---|---|---|
AudioStreamPlaybackPolyphonic |
||||
La méthode |
✔️ |
✔️ |
TileMap
Modifications |
Compatible GDScript |
Compatible binaire C# |
Compatible source C# |
Intégré |
|---|---|---|---|---|
TileData |
||||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
XR
Modifications |
Compatible GDScript |
Compatible binaire C# |
Compatible source C# |
Intégré |
|---|---|---|---|---|
WebXRInterface |
||||
La méthode |
✔️ |
❌ |
✔️ |
|
XRServer |
||||
La méthode |
✔️ |
❌ |
❌ |
Extensions pour l'éditeur
Modifications |
Compatible GDScript |
Compatible binaire C# |
Compatible source C# |
Intégré |
|---|---|---|---|---|
EditorInspectorPlugin |
||||
La méthode |
✔️ |
✔️ |
||
EditorPlugin |
||||
La méthode |
✔️ |
✔️ |
||
La méthode |
✔️ |
✔️ |
||
EditorSceneFormatImporterFBX |
||||
Type renommé en |
❌ |
❌ |
❌ |
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
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.