Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Upgrade von Godot 4.1 auf Godot 4.2

Für die meisten Spiele und Anwendungen, die mit 4.1 entwickelt wurden, sollte es relativ sicher sein, auf 4.2 zu migrieren. Diese Seite soll alles abdecken, worauf Sie bei der Migration Ihres Projekts achten müssen.

Änderungen, die etwas kaputtmachen können

Wenn Sie von 4.1 auf 4.2 migrieren, könnten Sie von den hier aufgeführten Änderungen betroffen sein. Die Änderungen sind nach Bereichen/Systemen gruppiert.

Warnung

Das Mesh-Ressourcenformat hat sich in 4.2 geändert, um eine Vertex- und Attributkompression zu ermöglichen. Dies ermöglicht eine verbesserte Rendering-Leistung, insbesondere auf Plattformen mit eingeschränkter Speicherbandbreite, wie z.B. auf mobilen Geräten.

Es ist immer noch möglich, die Godot 4.0-4.1 Mesh-Formate zu laden, aber es ist nicht möglich, das Godot 4.2 Mesh-Format in früheren Godot-Versionen zu laden. Wenn Sie ein Godot-Projekt öffnen, das mit einer Version vor 4.2 erstellt wurde, wird möglicherweise ein Upgrade-Dialog angezeigt, der zwei Optionen bietet:

  • Neustart & Upgrade: Aktualisiert das Mesh-Format für alle Meshes im Projekt und speichert das Ergebnis auf der Festplatte. Einmal gewählt, verhindert diese Option ein Downgrade des Projekts auf eine Godot-Version vor 4.2. Richten Sie ein Versionsverwaltungssystem ein und pushen Sie Ihre Änderungen vor der Auswahl dieser Option!

  • Nur Upgrade: Aktualisiert das Meshformat im Speicher, ohne es auf die Festplatte zu schreiben. Dies ermöglicht ein Downgrade des Projekts auf eine Godot-Version, die älter als 4.2 ist, falls Sie dies in Zukunft benötigen. Der Nachteil ist, dass das Laden des Projekts jedes Mal langsamer wird, da das Mesh-Format jedes Mal aktualisiert werden muss, wenn das Projekt geladen wird. Diese längeren Ladezeiten wirken sich auch auf das exportierte Projekt aus. Die Anzahl und Komplexität der Mesh-Ressourcen bestimmt, wie stark die Ladezeiten beeinflusst werden.

Wenn dieser Dialog nicht erscheint, verwenden Sie Projekt > Tools > Mesh-Oberflächen aktualisieren... oben im Editor.

Dieser Artikel gibt an, ob die einzelnen Änderungen GDScript betreffen und ob die C#-Änderung binärkompatibel oder quelltextkompatibel ist:

  • Binärkompatibel - Vorhandene Binärdateien werden ohne Neukompilierung erfolgreich geladen und ausgeführt, und das Laufzeitverhalten ändert sich nicht.

  • Quellcodekompatibel - Der Quellcode wird beim Upgrade von Godot ohne Änderungen erfolgreich kompiliert.

Kern

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

Node

Konstante NOTIFICATION_NODE_RECACHE_REQUESTED entfernt

✔️

GH-84419

Animation

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

AnimationPlayer

Methode _post_process_key_value in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode add_animation_library in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode advance in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Signal Animation_finished in Basisklasse AnimationMixer verschoben

✔️

GH-80813

Signal Animation_started in Basisklasse AnimationMixer verschoben

✔️

GH-80813

Signal animation_libraries_updated in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Signal animation_list_changed in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property audio_max_polyphony in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Signal caches_cleared in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode clear_caches in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode find_animation in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode find_animation_library in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_animation in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_animation_library in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_animation_library_list in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_animation_list in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode has_animation in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode has_animation_library in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property method_call_mode umbenannt in callback_mode_method und in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property playback_active umbenannt in active und in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property playback_process_mode umbenannt in callback_mode_process und in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode remove_animation_library in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode rename_animation_library in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property reset_on_save in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property root_node in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode set_reset_on_save_enabled in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode seek bekommt einen neuen optionalen Parameter update_only

✔️

✔️

✔️

GH-80813

AnimationTree

Methode _post_process_key_value in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property active in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode advance in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Signal Animation_finished in Basisklasse AnimationMixer verschoben

✔️

GH-80813

Signal Animation_started in Basisklasse AnimationMixer verschoben

✔️

GH-80813

Property audio_max_polyphony in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_root_motion_position in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_root_motion_position_accumulator in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_root_motion_rotation in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_root_motion_rotation_accumulator in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_root_motion_scale in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Methode get_root_motion_scale_accumulator in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property process_callback umbenannt in callback_mode_process und in die Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property root_motion_track in Basisklasse AnimationMixer verschoben

✔️

✔️

✔️

GH-80813

Property tree_root ändert Typ von AnimationNode in AnimationRootNode

✔️

GH-80813

GUI-Nodes

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

PopupMenu

Methode add_icon_shortcut bekommt einen neuen optionalen Parameter allow_echo

✔️

✔️

✔️

GH-36493

Methode add_shortcut bekommt einen neuen optionalen Parameter allow_echo

✔️

✔️

✔️

GH-36493

Methode clear bekommt einen neuen optionalen Parameter free_submenus

✔️

✔️

✔️

GH-79965

RichTextLabel

Methode add_image bekommt neue optionale Parameter key, pad, tooltip und size_in_percent

✔️

✔️

✔️

GH-80410

Rendern

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

ImporterMesh

Methode add_surface ändert den Typ des Parameters flags von uint32 auf uint64

✔️

✔️

✔️

GH-81138

Methode get_surface_format ändert Rückgabetyp von uint32 auf uint64

✔️

GH-81138

MeshDataTool

Methode commit_to_surface bekommt einen neuen optionalen Parameter compression_flags

✔️

✔️

✔️

GH-81138

Methode get_format ändert Rückgabetyp von uint32 auf uint64

✔️

GH-81138

RenderingDevice

Enum-Feld BarrierMask.BARRIER_MASK_RASTER ändert Wert von 1 auf 9

✔️

✔️

✔️

GH-79911

Enum-Feld BarrierMask.BARRIER_MASK_ALL_BARRIERS ändert Wert von 7 auf 32767

✔️

✔️

✔️

GH-79911

Enum-Feld BarrierMask.BARRIER_MASK_NO_BARRIER ändert Wert von 8 auf 32768

✔️

✔️

✔️

GH-79911

Methode shader_create_from_bytecode bekommt einen neuen optionalen Parameter placeholder_rid

✔️

✔️

✔️

GH-79606

Methode shader_get_vertex_input_attribute_ask ändert Rückgabetyp von uint32 auf uint64

✔️

GH-81138

SurfaceTool

Methode commit ändert den Typ des Parameters flags von uint32 auf uint64

✔️

✔️

✔️

GH-81138

Text

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

Font

Methode set_fallbacks ersetzt durch die Property fallbacks

✔️

GH-78266

Methode get_fallbacks ersetzt durch die Property fallbacks

✔️

GH-78266

Methode find_variation bekommt neue optionale Parameter spacing_top, spacing_bottom, spacing_space und spacing_glyph

✔️

✔️

✔️

GH-80954

GraphEdit

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

GraphEdit

Property arrange_nodes_button_hidden umbenannt in show_arrange_button

✔️

✔️

GH-81582

Methode get_zoom_hbox umbenannt in get_menu_hbox

✔️

✔️

GH-79308

Property snap_distance umbenannt in snapping_distance

✔️

✔️

GH-79308

Property snap_distance umbenannt in snapping_distance

✔️

✔️

GH-79308

GraphNode

Property comment entfernt

GH-79307

Signal close_request umbenannt in delete_request und in die Basisklasse GraphElement verschoben

✔️

✔️

GH-79311

Property draggable in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Property draggable in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Signal dragged in Basisklasse GraphElement verschoben

✔️

GH-79311

Methode get_connection_input_color entfernt

GH-79311

Methode get_connection_input_count entfernt

GH-79311

Methode get_connection_input_height entfernt

GH-79311

Methode get_connection_input_position entfernt

GH-79311

Methode get_connection_input_slot entfernt

GH-79311

Methode get_connection_input_type entfernt

GH-79311

Methode get_connection_output_color entfernt

GH-79311

Methode get_connection_output_count entfernt

GH-79311

Methode get_connection_output_height entfernt

GH-79311

Methode get_connection_output_position entfernt

GH-79311

Methode get_connection_output_slot entfernt

GH-79311

Methode get_connection_output_type entfernt

GH-79311

Property language entfernt

GH-79311

Signal node_deselected in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Signal node_selected in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Property overlay entfernt

GH-79311

Property position_offset in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Signal position_offset_changed in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Signal raise_request in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Property resizable in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Signal resize_request in Basisklasse GraphElement verschoben

✔️

GH-79311

Property selectable in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Property selected in Basisklasse GraphElement verschoben

✔️

✔️

✔️

GH-79311

Property show_close entfernt

GH-79311

Property text_direction entfernt

GH-79311

TileMap

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

TileMap

Property cell_quadrant_size umbenannt in rendering_quadrant_size

✔️

✔️

GH-81070

XR

Veränderung

GDScript- kompatibel

C#-binär- kompatibel

C#-quellcode- kompatibel

Eingeführt in

XRInterface

Property environment_blend_mode hinzugefügt

✔️

GH-81561

Bemerkung

Diese Änderung führt zu einem Kompatibilitätsbruch in C#, da die neue Property mit dem Namen eines existierenden Enum kollidiert und der C# Binding-Generator den Propertys Priorität einräumt. Daher wurde der Enum-Typ von EnvironmentBlendMode in EnvironmentBlendModeEnum umbenannt.