Upgrading from Godot 4.5 to Godot 4.6
For most games and apps made with 4.5 it should be relatively safe to migrate to 4.6. This page intends to cover everything you need to pay attention to when migrating your project.
破坏性更改
If you are migrating from 4.5 to 4.6, the breaking changes listed here might affect you. Changes are grouped by areas/systems.
这篇文章指出了每项破坏性改动是否会影响 GDScript,以及 C# 的破坏性改动是 二进制兼容 还是 源代码兼容:
二进制兼容 — 现有可执行文件无需重新编译即可成功加载和执行,且运行时行为不会发生变化。
源代码兼容—— 在升级 Godot 时,源代码可成功编译,无需更改。
核心
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
FileAccess |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
性能 |
||||
Method |
✔️ |
✔️ |
✔️ |
动画
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
AnimationPlayer |
||||
Property |
✔️ |
❌ |
❌ |
|
Property |
✔️ |
❌ |
❌ |
|
Property |
✔️ |
❌ |
❌ |
|
Method |
✔️ |
❌ |
❌ |
|
Signal |
✔️ |
❌ |
❌ |
3D
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
SpringBoneSimulator3D |
||||
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
渲染
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
DisplayServer |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
GUI 节点
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
Control |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
FileDialog |
||||
Method |
✔️ |
✔️ |
✔️ |
|
LineEdit |
||||
Method |
✔️ |
✔️ |
✔️ |
|
SplitContainer |
||||
Method |
✔️ |
✔️ |
✔️ |
网络
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
StreamPeerTCP |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
TCPServer |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
OpenXR
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
OpenXRExtensionWrapper |
||||
Method |
❌ |
❌ |
❌ |
|
Method |
N/A |
N/A |
N/A |
备注
OpenXRExtensionWrapper 类型旨在从 GDExtensions 中细分为子类。方法 _set_instance_create_info_and_get_next_pointer 有一个 void* 参数,所以不会暴露在脚本中。
编辑器
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
EditorExportPreset |
||||
Method |
✔️ |
❌ |
❌ |
|
EditorFileDialog |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Property |
✔️ |
❌ |
✔️ |
|
Property |
✔️ |
✔️ |
✔️ |
|
Property |
✔️ |
✔️ |
✔️ |
|
Property |
✔️ |
✔️ |
✔️ |
|
Property |
✔️ |
❌ |
✔️ |
|
Property |
✔️ |
❌ |
✔️ |
|
Property |
✔️ |
✔️ |
✔️ |
|
Property |
✔️ |
✔️ |
✔️ |
|
Property |
✔️ |
✔️ |
✔️ |
|
Signal |
✔️ |
❌ |
✔️ |
|
Signal |
✔️ |
❌ |
✔️ |
|
Signal |
✔️ |
❌ |
✔️ |
|
Signal |
✔️ |
❌ |
✔️ |
行为更改
Android
备注
Android 导出模板的源集配置已更新,以匹配默认的 Android Studio 项目结构( GH-110829 )。这会影响 Android 项目的目录布局:
之前位于
[项目根目录]/android/build/src/中的文件现在位于[项目根目录]/android/build/src/main/java/中。Android 清单文件和资产目录已移至
src/main/子目录。
例如, GodotApp.java 从 src/com/godot/game/GodotApp.java 移动到了 src/main/java/com/godot/game/GodotApp.java 。
渲染
备注
现在,无论视口的 use_hdr_2d 设置如何,柔光混合模式的行为始终与以前使用 use_hdr_2d 时的行为相同( GH-109971 )。
Changed defaults
以下默认值已更改 。如果你的项目依赖于之前的默认值,则可能需要将其显式设置为旧的值。
备注
Windows 系统上 新建 项目的默认渲染驱动程序现在是 D3D12 (GH-113213)。可以在项目设置的 rendering/rendering_device/driver.windows 下更改此设置。
备注
新建项目 的默认 3D 物理引擎现在是 Jolt Physics ( GH-105737 )。可以在项目设置的 physics/3d/physics_engine 下更改此设置。
3D
Member |
Old Value |
New Value |
引入 |
|---|---|---|---|
MeshInstance3D |
|||
Property |
NodePath("..") |
NodePath("") |
备注
骨骼 的默认值已更改 。如果为实现兼容性需要旧的行为 ,请在项目设置中启用 animation/ compatibility /default_parent_skeleton_in_mesh_instance_3d 。
渲染
Member |
Old Value |
New Value |
引入 |
|---|---|---|---|
ProjectSettings |
|||
属性 |
8 |
7 |
|
属性 |
613 |
618 |
|
Environment |
|||
Property |
2 |
1 |
|
Property |
0.8 |
0.3 |
|
Property |
0.0 |
0.8 |
|
Property |
1.0 |
0.4 |
|
Property |
0.0 |
0.1 |
|
Property |
1.0 |
0.0 |
|
属性 |
0.2 |
0.5 |
GUI 节点
Property/Parameter |
Old Value |
New Value |
引入 |
|---|---|---|---|
PopupMenu |
|||
Property |
0.3 |
0.2 |
|
ResourceImporterCSVTranslation |
|||
属性 |
true |
1 |