跳转至

Godot — 当前最佳实践

最后验证:2026-02-12 | 引擎:Godot 4.6

自模型训练数据(~4.3)以来新增或变更的实践。 这是对智能体内置知识的补充(而非替代)。

GDScript (4.5+)

  • 可变参数:函数可以接受任意数量的参数

    func log_values(prefix: String, values: Variant...) -> void:
        for v in values:
            print(prefix, ": ", v)
    

  • 抽象类和方法:使用 @abstract 强制继承

    @abstract
    class_name BaseEnemy extends CharacterBody3D
    
    @abstract
    func get_attack_pattern() -> Array[Attack]:
        pass  # Subclasses MUST override
    

  • 脚本回溯:即使在 Release 构建中也提供详细调用堆栈

物理 (4.6)

  • Jolt Physics 是新项目的默认 3D 物理引擎
  • 比 GodotPhysics3D 具有更好的确定性和稳定性
  • 某些 HingeJoint3D 属性(damp)仅适用于 GodotPhysics
  • 切换:Project Settings → 物理 → 3D → 物理引擎
  • 2D 物理未改变(仍为 Godot Physics 2D)

渲染 (4.6)

  • D3D12 是 Windows 上的默认后端(原为 Vulkan)——以获得更好的驱动兼容性
  • 辉光现在在色调映射之前处理,并采用屏幕混合模式——现有的辉光设置可能看起来有所不同
  • SSR 已彻底改进——在真实感、稳定性和性能方面有显著提升
  • AgX 色调映射器——新增白点和对比度控制

渲染 (4.5)

  • Shader Baker:预编译着色器以消除启动卡顿
  • SMAA 1x:新增 AA 选项——比 FXAA 更锐利,比 TAA 更节省性能
  • 模板缓冲:可用于高级遮罩/传送门效果
  • 弯曲法线贴图:法线贴图纹理中的方向性遮蔽
  • 高光遮蔽:环境光遮蔽现在会影响反射

无障碍 (4.5+)

  • 屏幕阅读器支持:Control 节点通过 AccessKit 与无障碍工具集成
  • 实时翻译预览:直接在编辑器中测试不同语言的 GUI 布局
  • FoldableContainer:新增手风琴式 UI 节点,用于可折叠区域
  • 递归禁用 Control:通过单个属性禁用整个节点层次结构的鼠标/焦点交互

动画 (4.5+)

  • BoneConstraint3D:使用修改器将骨骼绑定到其他骨骼
  • AimModifier3D, CopyTransformModifier3D, ConvertTransformModifier3D

动画 (4.6)

  • IK 系统完全恢复:为 3D 重新引入了完整的逆向运动学
  • 可用修改器:CCDIK、FABRIK、Jacobian IK、Spline IK、TwoBoneIK
  • 通过 SkeletonModifier3D 节点应用

资源 (4.5+)

  • duplicate_deep():对嵌套资源树进行显式深拷贝
  • 保留旧的 duplicate() 行为以实现向后兼容
  • 当你需要嵌套资源的逐实例副本时,请使用 duplicate_deep()
  • 专用 2D 导航服务器:不再通过 3D NavigationServer 代理
  • 减少仅 2D 游戏的导出二进制文件大小

UI (4.6)

  • 双焦点系统:鼠标/触摸焦点现在与键盘/游戏手柄焦点分离
  • 视觉反馈因输入方法而异
  • 在设计自定义焦点行为时请考虑这一点

编辑器工作流 (4.6)

  • 灵活的停靠区拖放,带蓝色轮廓预览(包括底部面板)
  • 大多数面板支持浮动窗口(Debugger 除外)
  • 新增键盘快捷键:Alt+O(Output)、Alt+S(Shader)
  • 导出变量自动生成:将资源从 FileSystem 拖入脚本编辑器
  • 启用“Live Preview”后,Quick Open 对话框中会显示实时预览
  • 新增的“Select Mode”(v 键)可防止意外变换;旧模式已重命名为“Transform Mode”(q 键)

工具

  • ripgrep 没有 gdscript 类型:*.gd 注册在 gap(GAP 编程语言)下。 rg --type gdscript 是硬错误——搜索永远不会执行。 始终使用 rg --glob "*.gd"(shell)或 glob: "*.gd"(Grep 工具)来过滤 GDScript 文件。

平台 (4.5+)

  • visionOS 导出:开源以来首个新平台(窗口化应用模式)
  • SDL3 手柄驱动:更好的跨平台手柄支持
  • Android:边到边显示、相机画面访问、16KB 页面支持(Android 15+)
  • Linux:Wayland 子窗口支持,实现多窗口能力

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/Claude-Code-Game-Studios