维护版本:Godot 4.0.3:
随着Godot 4.1 的发布,贡献者一直在努力对引擎进行重大且令人兴奋的改进。但我们感谢你们中的许多人希望在生产中使用 Godot 4 时体验不那么令人兴奋,而更稳定。为此,我们尝试尽可能多地向后移植有用的修复程序来改进您的工作流程,新的 Godot 4.0.3 版本就是这些努力的结果。
几乎每个领域都涉及错误修复和稳定性改进。这包括在构造实体几何 (CSG)、GDScript 语言服务器、资产导入以及所有与渲染和视觉相关的事物中消除的多次崩溃和故障。解决了几个报告的特定于平台的崩溃和冻结问题,尤其是在 Android 和 Windows 上。当然,整体用户体验和文档也有所改进。由于Calinou的认真努力,后者在完整性方面获得了巨大的提升,他更新了渲染 API 中的大量描述。
立即下载 Godot 4.0.3或试用Godot 编辑器的在线版本。
本次发布的插画图片来自 MrEliptik的Godot Juice 课程。这是Dashpong的创建者为您的 Godot 4 项目添加多汁视觉效果的入门读物,您可以确信它基于实践经验!它在itch.io和Udemy上可用。
变化
作为此版本的一部分,94 位贡献者提出了 234 次拉取请求(或 244 次提交)。请参阅精选的变更日志以获取最显着差异的列表,或浏览我们的交互式变更日志以获取包含相关 PR 和提交链接的完整变更列表。
以下是自 4.0.2-stable 以来的主要变化:
2D:修复 RemoteTransform2D 可能无法更新 AnimatableBody2D 的位置或旋转 ( GH-75487 )。
2D:修复渲染奇数大小的图块(GH-74814)。
2D:修复纹理更改时不重绘的 TouchScreenButton ( GH-75016 )。
3D:修复 CSG 稳健性 ( GH-74771 )。
3D:修复 CSG 中的无限循环Build2DFaces::_find_edge_intersections( GH-76521 )。
3D:修复SurfaceTool::create_from_blend_shape()( GH-76669 )。
动画:修复 blend_shape (shapekey) 空名称导入 ( GH-75990 )。
音频:修复由于虚假项目设置导致的无效 mix_rate 分配导致的崩溃 ( GH-69833 )。
音频:修复当 PhysicsServer2D 在线程上运行时 AudioStreamPlayer2D 崩溃 ( GH-75728 )。
构建系统:修复 dev_build 中的强制优化 ( GH-75909 )。
构建系统:启用影子警告并修复引发的错误 ( GH-76946 )。
C#:在 Vector2/3/4 到 Vector2I/3I/4I 的转换中截断而不是舍入 ( GH-75477 )。
核心:修复更新外部依赖项时 tscn/res 文件的 UID 字段丢失的问题 ( GH-70234 )。
核心:解除资源加载线程请求者必须是发起者的限制(GH-73862)。
核心:在树外读取时修复无效的全局位置(GH-75509)。
核心:使 acos 和 asin 安全(GH-76906)。
文档:改进 RenderingServer、RenderingDevice、ShaderGlobalsOverride 文档 ( GH-76008 )。
编辑器:改进编辑器状态初始化(GH-74682、GH-75563)。
编辑器:修复 UI 对触摸点击的响应 ( GH-75703 )。
编辑器:修复连接信号对话框不允许 Unicode 方法名称 ( GH-75814 )。
编辑器:修复节点数组在检查器中显示为对象数组 ( GH-76530 )。
编辑器:修复 CollisionShape2D 编辑器崩溃(GH-76546、GH-76798)。
导出:修复 macOS 上代码签名证书密码的验证 ( GH-74326 )。
GDScript:解析时添加缺少的成员类型检查extends( GH-75879 )。
GDScript:修复几个与 LSP 相关的问题(GH-76090、GH-76095)。
GDScript:修复混合制表符和空格问题 ( GH-76286 )。
GDScript:LSP:不要发送空的完成命令 ( GH-76790 )。
GUI:修复 RichTextLabel( GH-71742、GH-75504)中的几个大小和定位问题。
GUI:修复评论折叠函数 ( GH-75070 )。
GUI:允许在 ColorPicker 的十六进制字段中输入命名颜色 ( GH-75905 )。
GUI:改进 TextServer 中的 BiDi 处理(GH-75922、GH-75975)。
GUI:修复抗锯齿 StyleBoxFlat ( GH-76132 ) 上的模糊边界。
导入:修复导入 SVG 时基于大小和比例的错误 ( GH-75034 )。
导入:修复 OBJ 网格导入器平滑处理 ( GH-75315 )。
导入:在图像中公开更多压缩格式并修复压缩检查 ( GH-76014 )。
导入:使用不正确的索引修复动画轮廓 ( GH-76499 )。
导入:使用 RGB 格式 ( GH-76516 )压缩 PNG 时使用 DXT1 。
输入:使用 XInput 和 Xbox 系列控制器 ( GH-73200 ) 修复引导按钮检测。
输入:修复阻止在 2D 编辑器中拖动的问题 ( GH-75113 )。
输入:修复 web 上的键码/物理键码混淆(GH-75738)。
导航:公开 NavigationAgent 路径后处理和寻路算法选项 ( GH-75326 )。
导航:修复 NavigationObstacles 未添加到回避模拟 ( GH-75756 )。
导航:修复 HeightMapShape 的 NavigationMesh 烘焙 ( GH-76212 )。
粒子:正确计算lifetime_split粒子 ( GH-73313 )。
粒子:将非活动 GPUParticles3D 粒子转换为 -INF ( GH-75162 )。
粒子:修复 HTML 导出中的“error X3708: continue cannot be used in a switch”(GH-75795)。
粒子:使用 angle_rand 计算粒子处理材料中的 base_angle ( GH-75999 )。
物理:当凹多边形分配给 ConvexPolygonShape2D ( GH-56671 ) 时发出警告。
物理:修复凸-凸分离轴测试中的拼写错误 ( GH-75835 )。
移植:Android:允许并发缓冲和分派输入事件 ( GH-76399 )。
此更改应修复一些用户在使用 Godot 4.0 时遇到的 ANR(应用程序无响应)报告。请对其进行彻底测试,以确保它可以解决您的问题而不会出现倒退。
移植:Android:修复 Android 上的双击和拖动 ( GH-76791 )。
移植:Android:将 Android gradle 插件降级到版本 7.2.1 ( GH-76325 )。
移植:Android:修复使用兼容性渲染器 ( GH-76464 )时调整显示大小的问题。
移植:iOS:修复自动转换为框架的 GDExtension dylib 加载 ( GH-76510 )。
移植:Linux:确保 WindowData 最小化/最大化相互排斥 ( GH-76868 )。
移植:Linux:在沙箱中运行时,不要使用 udev 进行游戏手柄热加载 ( GH-76961 )。
移植:Windows:依赖聚焦窗口修复剪贴板(GH-73878)。
移植:Windows:清理 COM 库初始化/取消初始化 ( GH-75881 )。
此更改可能会修复项目启动时发生的一些崩溃。如果您之前受到影响,请尝试一下。
渲染:修复 Android studio 模拟器上的 GLES3 渲染 ( GH-74945 )。
渲染:修复金属的 R0 插值和 SSR 中 Fresnel Shlick 项的计算(GH-75368)。
渲染:在双精度时使用 MODELVIEW_MATRIX ( GH-75462 )。
渲染:确保在 OpenGL3 渲染器 ( GH-75968 )中的透明传递之前更新深度写入状态。
渲染:修复 Vulkan 布局转换 ( GH-76315 ) 的问题。
渲染:修复体素 GI 更改时体积雾的破损 ( GH-76437 )。
渲染:在立方体贴图下采样器栅格 ( GH-76692 ) 中使用适当的 UV。
这修复了使用移动渲染器时的反射。
着色器:修复由于视觉着色器编辑器 ( GH-75809 ) 中缺少类型说明符而导致的崩溃。
着色器:修复NODE_POSITION_VIEW内置着色器的旋转问题 ( GH-76109 )。
着色器:修复禁用时的着色器预处理器行编号 ( GH-76479 )。
XR:修复不正确的 HTC 动作映射条目 ( GH-74930 )。
第三方库更新:astcenc 4.4.0、doctest 2.4.11、mbedtls 2.28.3、thorvg 0.9.0、2023 年 3 月的 CA 证书。
以及对文档的许多改进。
以前在 4.0.3 候选版本中可用的一些更改已被还原。
编辑器:改进编辑器中 ViewportTexture 的用户体验 ( GH-64388 )。
此更改引入了一些新问题,因此我们将其回滚,目的是在经过更好的测试和完善后在未来的 4.0.x 版本中提供它。
编辑器:使 EditorToaster 的处理程序线程安全 ( GH-71670 )。
此更改需要进一步修复,这对于补丁版本来说是不安全的,因此我们将其回滚并打算仅在 Godot 4.1 中可用。