开发快照:Godot 4.7 dev 3

2026-03-26

源地址:https://godotengine.org/article/dev-snapshot-godot-4-7-dev-3/

继上一个快照之后,将成为Godot 4.7的第三个开发快照现已发布!此快照包含一些期待已久的功能,其中一些可能会改变您在Godot中设计GUI的方式。一如既往,我们需要尽可能多的测试,以确保一切都能稳定下来。

如果您有能力,请考虑为该项目提供财务支持。Godot由志愿者和小型付费贡献者团队共同维护。您的捐款将用于赞助他们的工作,并确保他们能够全身心投入到满足项目需求的工作中。

跳转到下载部分,立即尝试一下,或者继续阅读以了解有关此版本中改进的更多信息。您还可以尝试此版本的网页编辑器XR编辑器安卓编辑器。如果您对后者感兴趣,请申请加入我们的测试组,以获取预发布版本的访问权限。

封面插图来自Lucid Blocks,这是一款游戏,你可以在一个充满梦幻般奇异和深奥生物的神秘广阔空间中探索、建造和生存。你可以在Steam上购买游戏,并在BlueskyYouTubeDiscord上关注开发者。

亮点

GUI:向控制节点添加变换偏移

Godot GUI系统中最期待已久的功能之一是能够平移、旋转或缩放Control节点,而不会影响容器的其他部分。这最明显地用于动画目的,这样按钮就可以在视图中平滑滑动或随着比例的变化而淡出。

但是,Godot的各种容器节点将位置、旋转和缩放应用于它们的子节点,这意味着当容器再次排序时(当在场景树中添加、删除或移动子节点时),对子节点变换所做的任何更改都会丢失。Timo SchwarzerGH-87081中实现的新变换偏移属性旨在以一种自包含的方式解决这一限制,类似于CSS中的变换属性。

您可以选择变换偏移是否影响鼠标输入。默认情况下,转换偏移是纯视觉的,这意味着按钮在转换后不会失去悬停状态。应用了变换偏移的控件将显示其原始边界框,并显示一个灰色虚线矩形:

GUI:实现PopupMenu的搜索栏

作为一种可用于创建复杂项目的工具,Godot对具有数十个选项(如果不是更多的话)的弹出窗口并不陌生。虽然增量搜索可用于聚焦以给定字母开头的第一个项目(通过按下有问题的字母),但这可能很难使用,因为增量搜索在执行后缺乏可见的反馈。

为了解决这个长期存在的可用性问题,Alexander StrengGH-114236的PopupMenu中添加了搜索栏。这对于动画、骨架、资源属性的检查器下拉菜单等长列表特别有用。可见的搜索栏也使搜索更容易被发现,这是可用性的胜利。

此功能在任何PopupMenu节点中都可用,这意味着它也可以在非游戏应用程序等项目中使用。

编辑器:将顶点捕捉添加到三维编辑器中

最期待的提高3D编辑器可用性的功能之一终于来了!Robert YevdokimovGH-117235的3D编辑器中实现了顶点捕捉。这允许您将选择捕捉到附近节点的顶点,这对于标高设计和确保所有内容在视觉上都连接到相邻节点非常有用。

要使用顶点捕捉,请按住B并将鼠标移动到选择的顶点附近。看到黄色圆圈后,按住鼠标按钮并将鼠标移动到所需位置(此时可以释放B)。一旦在鼠标光标附近检测到要捕捉的顶点,圆圈就会变为绿色。为了获得更好的深度感知,如果黄色/绿色圆圈被另一个曲面遮挡,则其不透明度会降低。

顶点捕捉的工作方式因选定节点是否具有基于网格的表示而不同。例如,MeshInstance3D和CSG节点具有基于网格的表示,而Label3D和Marker3D等其他节点则没有。当按住B并单击另一个节点的顶点时,没有基于网格的表示的节点将传送到突出显示的顶点。得益于GH-117380的后续贡献,您也可以选择对具有基于网格表示的节点采用这种行为。

编辑器:在远程场景视图中使用类名而不是对象ID

远程场景树对于诊断正在运行的项目中发生的事情非常有用。然而,到目前为止,所有内容都显示为一堆匿名的对象ID。Jayden Sipe通过在GH-115738中添加类名改进了这一视图,使该工具更加有用。

之前

之后

编辑器:为MeshLibrary创建一个合适的编辑器

GridMap用户高兴!得益于Michael Alexsander在GH-117376中的工作,MeshLibrary资源(存储可在GridMap节点中使用的图块)现在可以更容易地编辑。

这个新的底部编辑器具有以下功能:

  • 在网格中显示项目,包括搜索和缩放。
  • 在单独的检查器中编辑单个项目。
  • 对所有操作进行完全撤消/重做。
  • 如果没有特别设置,则回退预览到项目的网格。

以下是一个示例:

安卓:添加画中画支持

得益于Fredia Huya KouadioGH-114505中的工作,Godot现在能够运行项目并将其移动到固定在屏幕角落之一的小窗口中。这依赖于Android对画中画(PiP)显示的原生支持。例如,Android上的YouTube使用此功能在屏幕的一角显示当前播放的视频。

请注意,画中画不允许在此模式下与应用程序交互,因此此功能对于具有不需要实时输入的部分的应用程序和游戏(空闲游戏、自动转换器等)最有用。

画中画功能可以通过两种方式启用:

  • 通过调用DisplayServer.pip_mode_enter()显式地执行。
  • 通过调用DisplayServer.pip_mode_set_auto_enter_on_background()配置为自动发生。在这种情况下,当用户按下主页按钮或在设备上使用主页手势时,应用程序将自动进入画中画模式。

例如,由于此功能可以在运行时切换,您可以在过场动画开始时允许画中画模式,并在返回交互式内容时禁用它。

以下是它在游戏Rift Riff中的一个示例,其中PiP模式仅在游戏的一个波浪中启用:

Android:在脚本编辑器中启用方向更改

Android的改进并不止于此。感谢Anish KumarGH-117109中的工作,您现在可以在Android设备上的脚本编辑器中切换到肖像模式。这使得在虚拟键盘上打字时更容易查看代码。请注意,必须启用无分心模式才能实现这一点(可以切换)。这个限制必须到位,因为侧坞占用了大量的水平空间,而纵向模式下的脚本编辑器在侧坞可见的情况下是不切实际的。

Linux/*BSD:支持HDR输出

继之前在WindowsApple平台上添加了HDR输出支持的开发快照之后,我们在使用Wayland显示服务器(GH-102987)时在Linux上添加了对HDR输出的支持。值得称赞的是,ArchercatNEO一年多来一直致力于开发和维护Wayland支持以及Windows和Apple PR!

同样值得注意的是,HDR输出的文档现在可用。来看看吧,测试HDR输出的演示项目即将推出。

还有更多!

这里有太多令人兴奋的变化,无法一一列出,但这里有一个精心挑选的:

  • 3D: Add automatic smoothing for CSG nodes (GH-116749).
  • Animation: Optimize Animation Resource, Library, Mixer, and Player (GH-116394).
  • Animation: Optimize AnimationTree, Improve internals & Editor & Node::process_thread_group safety (GH-117277).
  • Core: Improve thread-safety of Object signals (GH-117511).
  • Core: Use TRACY_ON_DEMAND by default for Tracy integration (GH-1117583).
  • Editor: Add View3DController for editor 3D view manipulation (GH-115957).
  • Editor: Add 3D vertex snap base setting (Vertex/Origin) (GH-117380).
  • Editor: Depict version discrepancies in Project Manager (GH-111528).
  • Editor: Generate and display documentation for the properties generated by PropertyListHelper (GH-115253).
  • Editor: Reorganize Output dock (GH-112690).
  • Editor: Revamp autoload creation (GH-91124).
  • Editor: Stop autocomplete from eating words by default (GH-117464).
  • Editor: Support folding, groups, and subgroups in remote scene inspector (GH-117357).
  • GUI: Add triple-click paragraph selection to RichTextLabel (GH-116868).
  • Input: Add project setting to ignore joypad events if the app is unfocused (GH-115119).
  • Platforms: Add haptic feedback on long-press right-click in the editor (GH-117198).
  • Platforms: Enable wake for events if Magnet is running (GH-116524).
  • Rendering: Add fast path to Polygon2D (GH-117334).
  • Rendering: Add scale 3D and rotation 3D in particle process (GH-1112447).

更新日志

113名贡献者为此版本提交了297个修复程序。有关4.7-dev2以来的完整更改列表,请参阅我们的交互式更改日志。您还可以查看与之前的4.6功能版本相比,4.7中包含的所有更改

此版本基于提交号778cf54da构建。

下载

下载 Godot 4.7 dev3

Linux

macOS

Windows

导出模板及其他下载内容 捐献

标准构建包括对GDScript和GDExtension的支持。

.NET构建(标记为mono)支持C#以及GDScript和GDExtension。

尽管引擎维护人员会尽最大努力确保每个预览快照和候选版本都是稳定的,但这些版本从定义上来说都是预发布软件。请务必经常备份,或使用Git等版本控制系统,以防止项目损坏或数据丢失。

已知问题

每次发布时,我们都承认会出现各种问题,这些问题虽然已被报告,但尚未得到解决。有关已知错误的完整列表,请参阅GitHub问题跟踪器。

此版本目前未引入任何已知问题。

报告问题

作为测试人员,如果您在此版本中遇到问题,我们鼓励您提交错误报告。请先在GitHub上检查现有问题,使用相关关键词进行搜索,以确保您遇到的错误尚未被报告。

特别是,任何可能导致项目性能退化的变更都需特别报告(例如,如果某项功能在之前的4.x版本中运行良好,但在当前快照中不再有效)。

支持

Godot是一款非盈利的开源游戏引擎,由数百名贡献者在业余时间开发,同时,得益于Godot社区的慷慨捐赠,还聘请了少数兼职和全职开发人员。衷心感谢每一位为该项目贡献时间资金支持的人!

如果您想在经济上支持该项目,并帮助我们确保未来的招聘工作,您可以通过Godot发展基金来实现这一目标。

如果您想为该项目提供财务支持,并帮助我们确保未来的人才招聘,您可以通过Godot基金会管理的Godot发展基金平台进行捐赠。此外,您还可以选择其他更适合您的捐赠方式

现在捐赠