Upgrading from Godot 4.3 to Godot 4.4
For most games and apps made with 4.3 it should be relatively safe to migrate to 4.4. This page intends to cover everything you need to pay attention to when migrating your project.
做出更改
If you are migrating from 4.3 to 4.4, the breaking changes listed here might affect you. Changes are grouped by areas/systems.
這篇文章指出了每項破壞性改動是否會影響 GDScript,以及 C# 的破壞性改動是 二進位相容 還是 原始程式碼相容:
Binary compatible - Existing binaries will load and execute successfully without recompilation, and the run-time behavior won't change.
** 原始程式碼相容** —— 在升級 Godot 時,原始程式碼可成功編譯,無需更改。
核心
改動 |
GDScript 格式化字串 |
C# 二進位相容 |
C# 原始程式碼相容 |
簡介 |
|---|---|---|---|---|
FileAccess |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
OS |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
❌ |
✔️ |
✔️ |
|
RegEx |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Semaphore |
||||
Method |
✔️ |
✔️ |
✔️ |
|
TranslationServer |
||||
Method |
✔️ |
✔️ |
✔️ |
建立節點
改動 |
GDScript 格式化字串 |
C# 二進位相容 |
C# 原始程式碼相容 |
簡介 |
|---|---|---|---|---|
RichTextLabel |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
圖形編輯器(GraphEdit) |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Signal |
❌ |
❌ |
❌ |
物理
改動 |
GDScript 格式化字串 |
C# 二進位相容 |
C# 原始程式碼相容 |
簡介 |
|---|---|---|---|---|
SoftBody3D |
||||
Method |
✔️ |
✔️ |
✔️ |
算繪
改動 |
GDScript 格式化字串 |
C# 二進位相容 |
C# 原始程式碼相容 |
簡介 |
|---|---|---|---|---|
CPUParticles2D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
CPUParticles3D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
GPUParticles2D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
GPUParticles3D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
算繪 |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
❌ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
RenderingServer |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Shader |
||||
Method |
✔️ |
❌ |
❌ |
|
Method |
✔️ |
❌ |
✔️ |
|
VisualShaderNodeCubemap |
||||
Property |
✔️ |
❌ |
❌ |
|
VisualShaderNodeTexture2DArray |
||||
Property |
✔️ |
❌ |
❌ |
備註
In C#, the enum RenderingDevice.StorageBufferUsage breaks compatibility because of the way the bindings generator
detects the enum prefix. New members where added in GH-100062 to the enum that caused the enum members to be renamed.
編輯器外掛程式
改動 |
GDScript 格式化字串 |
C# 二進位相容 |
C# 原始程式碼相容 |
簡介 |
|---|---|---|---|---|
編輯器界面 (C++) |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
EditorSceneFormatImporter |
||||
Method |
❌ |
❌ |
❌ |
|
EditorTranslationParserPlugin |
||||
Method |
❌ |
❌ |
❌ |
備註
The method _get_import_flags was never used by the engine. It was removed despite the
compatibility breakage as there's no way for users to rely on this affecting engine behavior.
做出更改
核心
備註
The Curve resource now enforces its value range, so min_value and max_value need to be changed
if any of the points fall outside of the default [0, 1] range.
算繪
備註
The VisualShaderNodeVec4Constant shader node had its input type changed to Vector4. Users need to
recreate the values in their constants.
CSG
備註
The CSG implementation now uses Emmett Lalish's Manifold library (GH-94321).
The new implementation is more consistent with manifold definitions and fixes a number of bugs and stability
issues. As a result, non-manifold meshes are no longer supported. You can use MeshInstance3D for
rendering non-manifold geometry, such as quads or planes.
Android
備註
Android sensor events are no longer enabled by default (GH-94799). Projects that use sensor events can enable them as needed in Project Settings under Input Devices > Sensors.