开源游戏引擎 Godot 刚发布了 4.6.3 维护版本。41 位贡献者合力提交了 86 项修复,覆盖 2D、3D、动画等多个模块。虽然不是大版本,但其中好几项修的是编辑器里让人反复踩坑的小毛病——如果你正在用 4.6 系列做项目,升级的性价比很高。
TileMap 编辑体验的细节打磨
TileMap 是 2D 游戏开发中使用频率最高的节点之一。这次修复了一个容易忽略但实际很烦的问题:在检查器(Inspector)中修改 TileMap 属性时,图层选择器不会同步更新(GH-117256)。
这意味着你改完图层相关参数后,还得手动切换图层才能看到效果——操作链被打断,尤其在多图层地图编辑时非常明显。4.6.3 之后,检查器的改动会即时反映到图层选择器,编辑流程更连贯。
3D 编辑器的两处修正
3D 模块修了两个编辑器层面的 bug:
- Marker3D 小工具颜色异常(GH-116995):Marker3D 的编辑器 gizmo 在负轴方向显示比预期更暗,视觉上容易误判坐标方向。这个修复让轴线颜色在正负方向保持一致,定位参考点时不再需要"脑补"。
- GridMap 粘贴单元格旋转错误(GH-116683):在 GridMap 中粘贴单元格时,旋转值会被错误计算——你复制一个旋转过的网格块,粘贴出来方向却不对。这对做模块化场景搭建的工作流影响很大,修复后粘贴行为与预期一致。
动画及其他模块
摘要还提到了 Animation 模块的修复(具体条目被截断),但根据 Godot 4.6 系列的维护节奏,动画相关修复通常集中在 AnimationPlayer 的轨道编辑、关键帧同步等编辑器交互问题上。此外,86 项修复意味着渲染、物理、GDScript、平台适配等模块也有零散修正,完整列表可在官方 GitHub Release 页面查看。
升级实操:从 4.6.x 迷你升级到 4.6.3
维护版本不引入新功能,API 不变,升级风险极低。以下是几种常见安装方式:
方式一:直接下载预编译版本
# 下载 Linux 64 位版本(根据你的平台替换 URL 中的 linux.x86_64)
wget https://github.com/godotengine/godot/releases/download/4.6.3-stable/Godot_v4.6.3-stable_linux.x86_64.zip
unzip Godot_v4.6.3-stable_linux.x86_64.zip
chmod +x Godot_v4.6.3-stable_linux.x86_64
# 用新版本打开现有项目
./Godot_v4.6.3-stable_linux.x86_64
方式二:从源码编译(适合需要自定义模块的开发者)
# 克隆稳定分支
git clone https://github.com/godotengine/godot.git
cd godot
git checkout 4.6.3-stable
# 编译编辑器版本(Linux,其他平台参考官方文档)
scons platform=linuxbsd target=editor -j$(nproc)
# 编译完成后运行
./bin/godot.linuxbsd.editor.x86_64
方式三:Homebrew(macOS)
brew install godot
# 已安装则直接升级
brew upgrade godot
升级后首次打开项目,Godot 会自动重新导入资源,耗时取决于项目大小。建议在升级前备份
project.godot和.godot/目录。
快速验证:确认你受益的修复
升级完成后,可以用以下 GDScript 脚本快速验证 GridMap 粘贴修复是否生效:
# test_gridmap_paste.gd — 挂到场景中的任意 Node 上运行
extends Node
func _ready():
var grid_map = GridMap.new()
add_child(grid_map)
# 创建一个带旋转的网格实例
var mesh_library = MeshLibrary.new()
var test_mesh = BoxMesh.new()
test_mesh.size = Vector3(1, 1, 1)
var item_id = mesh_library.create_item(0)
mesh_library.set_item_mesh(item_id, test_mesh)
grid_map.mesh_library = mesh_library
# 在 (0, 0, 0) 放置一个旋转 90 度的单元格
grid_map.set_cell_item(Vector3i(0, 0, 0), item_id, Basis(Vector3.UP, PI / 2))
# 读取旋转值,确认 Basis 被正确保存
var basis = grid_map.get_cell_item_basis(Vector3i(0, 0, 0))
print("单元格 Basis 旋转角: ", basis.get_euler())
# 如果输出接近 (0, PI/2, 0),说明旋转存储正确
# 在 4.6.3 之前的版本中,粘贴操作会破坏这个旋转值
print("验证完成 — 如角度正确,GridMap 旋转修复生效")
将脚本保存为 test_gridmap_paste.gd,挂到任意节点上运行,检查控制台输出即可。
升级建议与注意事项
- 升级优先级:如果你在项目中大量使用 TileMap 多图层编辑或 GridMap 模块化搭建,这次修复直接改善日常操作,建议尽快升级。Marker3D 的修复对 3D 场景布局也有帮助。
- 风险边界:维护版本不改变 API,但极少数情况下修复可能改变编辑器的默认行为(比如图层选择器现在会自动更新)。如果你有依赖"旧行为"的自动化脚本,升级后跑一遍测试。
- 版本选择:4.6.3 是当前 4.6 系列的最新稳定版。如果还在 4.5 或更早版本,建议先升级到 4.6.0 再跳到 4.6.3,避免跨多个维护版本的跳跃。
86 项修复不算多,但每一项背后都是社区里有人踩过的坑。维护版本的意义就在这里——不追求新功能,而是让已有功能真正好用。