Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
从 Godot 4.5 升级到 Godot 4.6
对于大多数使用 4.5 制作的游戏和应用程序来说,迁移到 4.6 应该相对安全。本页旨在介绍迁移项目时需要注意的所有事项。
破坏性更改
如果你要从 4.5 迁移到 4.6,这里列出的破坏性更改可能会影响到你。变更按领域/系统进行了分组。
这篇文章指出了每项破坏性改动是否会影响 GDScript,以及 C# 的破坏性改动是 二进制兼容 还是 源代码兼容:
二进制兼容/ ——现有可执行文件无需重新编译即可成功加载和执行,且运行时行为不会发生变化。
源代码兼容——在升级 Godot 时,源代码可成功编译,无需更改。
核心
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
FileAccess |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
性能 |
||||
方法 |
✔️ |
✔️ |
✔️ |
动画
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
AnimationPlayer |
||||
属性 |
✔️ |
❌ |
❌ |
|
属性 |
✔️ |
❌ |
❌ |
|
属性 |
✔️ |
❌ |
❌ |
|
|
✔️ |
❌ |
❌ |
|
信号 |
✔️ |
❌ |
❌ |
3D
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
SpringBoneSimulator3D |
||||
方法 |
✔️ |
❌ |
✔️ |
|
方法 |
✔️ |
❌ |
✔️ |
|
方法 |
✔️ |
❌ |
✔️ |
|
方法 |
✔️ |
❌ |
✔️ |
|
方法 |
✔️ |
❌ |
✔️ |
|
方法 |
✔️ |
❌ |
✔️ |
渲染
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
DisplayServer |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
GUI 节点
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
Control |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
FileDialog |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
LineEdit |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
SplitContainer |
||||
方法 |
✔️ |
✔️ |
✔️ |
网络
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
StreamPeerTCP |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
❌ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
TCPServer |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
OpenXR
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
OpenXRExtensionWrapper |
||||
方法 |
❌ |
❌ |
❌ |
|
方法 |
N/A |
N/A |
N/A |
备注
OpenXRExtensionWrapper 类型旨在从 GDExtensions 中细分为子类。方法 _set_instance_create_info_and_get_next_pointer 有一个 void* 参数,所以不会暴露在脚本中。
编辑器
更改 |
GDScript 兼容 |
C# 二进制兼容 |
C# 源代码兼容 |
引入 |
|---|---|---|---|---|
EditorExportPreset |
||||
方法 |
✔️ |
❌ |
❌ |
|
EditorFileDialog |
||||
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
移除了 |
❌ |
❌ |
❌ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
方法 |
✔️ |
✔️ |
✔️ |
|
属性 |
✔️ |
❌ |
✔️ |
|
属性 |
✔️ |
✔️ |
✔️ |
|
属性 |
✔️ |
✔️ |
✔️ |
|
属性 |
✔️ |
✔️ |
✔️ |
|
属性 |
✔️ |
❌ |
✔️ |
|
属性 |
✔️ |
❌ |
✔️ |
|
属性 |
✔️ |
✔️ |
✔️ |
|
属性 |
✔️ |
✔️ |
✔️ |
|
属性 |
✔️ |
✔️ |
✔️ |
|
信号 |
✔️ |
❌ |
✔️ |
|
信号 |
✔️ |
❌ |
✔️ |
|
信号 |
✔️ |
❌ |
✔️ |
|
信号 |
✔️ |
❌ |
✔️ |
行为更改
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 。
核心
备注
在 Godot 4.6 中,TSCN 文件格式 发生了两处改动:
场景文件中将不再写入
load_steps属性(GH-103352)。因为这个属性编辑器实际上并没有用到。现在,场景文件中会保存唯一的节点 ID,以便在节点被移动或重命名时进行追踪(GH-106837)。这让场景重构变得稳健(可靠)得多。
这些改动是向后兼容且向前兼容的。这意味着,在 Godot 4.5 中保存的场景依然可以在 Godot 4.6 中正常加载,反之亦然(当然,前提是场景本身没有进行其他不兼容的修改)。
因此,当你在 Godot 4.6 中保存一个上次在 Godot 4.5 里编辑过的场景时,版本控制软件(比如 Git)里会出现大量的差异(diffs)。这些差异是预期之内的正常现象。
温馨提醒一下,你可以在编辑器的菜单栏里点击 (项目 > 工具 > 升级项目文件...),将项目中的所有文件一键升级到最新的格式,然后再把这些改动提交到版本控制系统中。这样做能让你在后续编辑场景时,避免出现大量不必要的差异(diffs)。
渲染
备注
Glow(辉光)的默认混合模式现在改成了 Screen(滤色)。这种模式看起来更自然、更准确,但会比之前的 Soft Light(柔光)模式明显亮得多(GH-110671)。
为了确保辉光效果不会变得过于强烈,官方还调整了其他几项辉光的默认参数。但即便如此,在升级引擎后,你很可能还是需要手动微调一下 Environment(环境)中的辉光属性。
此外,辉光(glow)的“柔光(Soft Light)”混合模式现在的表现将始终与之前开启 use_hdr_2d 时的表现保持一致,而不再受 Viewport(视口)的 use_hdr_2d 设置影响 (GH-109971)。
当使用 Mobile(移动端)渲染器时,出于性能优化的考虑,重写的辉光效果在视觉上会与之前的版本有显著差异(GH-110077)。你可能需要进一步调整 Environment(环境)中的辉光设置,才能达到和以前类似的视觉效果。
备注
体积雾的混合方式经过了调整,现在更加符合物理规律(GH-112494)。这会导致在大多数场景中,体积雾看起来会比以前更亮。
为了抵消这种影响,你需要降低 Environment(环境)中的体积雾密度或亮度,或者调低特定灯光上的 Volumetric Fog Energy (体积雾能量)属性。
默认值更改
以下默认值已更改 。如果你的项目依赖于之前的默认值,则可能需要将其显式设置为旧的值。
备注
Windows 系统上 新建 项目的默认渲染驱动程序现在是 D3D12 (GH-113213)。可以在项目设置的 rendering/rendering_device/driver.windows 下更改此设置。
备注
新建项目 的默认 3D 物理引擎现在是 Jolt Physics ( GH-105737 )。可以在项目设置的 physics/3d/physics_engine 下更改此设置。
3D
成员 |
旧值 |
新值 |
引入 |
|---|---|---|---|
MeshInstance3D |
|||
属性 |
NodePath("..") |
NodePath("") |
备注
骨骼 的默认值已更改 。如果为实现兼容性需要旧的行为 ,请在项目设置中启用 animation/ compatibility /default_parent_skeleton_in_mesh_instance_3d 。
渲染
成员 |
旧值 |
新值 |
引入 |
|---|---|---|---|
ProjectSettings |
|||
属性 |
8 |
7 |
|
属性 |
613 |
618 |
|
Environment |
|||
属性 |
2 |
1 |
|
属性 |
0.8 |
0.3 |
|
属性 |
0.0 |
0.8 |
|
属性 |
1.0 |
0.4 |
|
属性 |
0.0 |
0.1 |
|
属性 |
1.0 |
0.0 |
|
属性 |
0.2 |
0.5 |
GUI 节点
属性/参数 |
旧值 |
新值 |
引入 |
|---|---|---|---|
PopupMenu |
|||
属性 |
0.3 |
0.2 |
|
ResourceImporterCSVTranslation |
|||
属性 |
true |
1 |