Repository navigation
3.6.0
版本概述:本轮聚焦 GF 编辑器工作区形态、Flow 图形化编辑体验,以及标准库空间/表面查询工具的通用能力增强;所有新增能力保持抽象、可选,不引入具体业务节点或项目适配逻辑。
🚀 新增特性
- Kernel 编辑器新增独立 GF 工作区窗口,插件启用或编辑器打开时默认弹出,也可由工具菜单“打开 GF 工作区”再次进入,用于承载 kernel、standard 和启用扩展贡献的通用页面。
- GF Workspace 的关于面板新增 Issues、Releases 和手动最新版本检测入口,便于在编辑器内查看项目支持与发布信息。
- 新增 GitHub Release 自动化工作流与 changelog 提取工具,推送不带
v的 SemVer tag 后可自动生成 Release 说明。 - Flow 扩展的
GFFlowGraphDock升级为 GraphEdit 工作区,可查看节点、拖动editor_position、建立/移除通用连接,并继续展示校验清单与自动布局入口。 GFFlowGraphEditorModel新增 GraphEdit slot 描述字段,用于区分节点级执行连接 slot 与数据端口 slot。GFSurfaceUtility新增缓存策略、自动缓存容量、Mesh surface 缓存预热与单 Mesh 缓存移除 API。GFQuadTreeUtility新增点查询、首个点命中查询、可选精确命中测试、实体矩形读取、重复插入替换与显式compact()重建。
🔄 机制更改
- GF 插件不再把完整工作区安装到底部面板,改为独立窗口承载,并使用短页面标签与完整 tooltip 兼顾空间和语义。
- GF Workspace 页面统一使用通用页面根、工具栏、摘要、空状态和详情区构建方式,减少各工具面板在布局密度、状态颜色和文案风格上的漂移。
- Flow 图形编辑器仍只操作
GFFlowGraph的通用节点、端口、连接和编辑器元数据,不提供业务节点库,也不解释项目流程语义。 - GF 内置扩展目录从
addons/gf/extensions/official/<name>扁平化为addons/gf/extensions/<name>,不再提供插件内community目录;项目组合、第三方能力和业务适配应放在项目代码或独立 Godot 插件中。 - GF 内置扩展 ID 从
gf.official.*迁移为gf.*,旧 ID 不再兼容;项目设置、脚本和工具应显式迁移到新 ID。 - GF 发布 tag 统一采用
3.6.0这类不带v的 SemVer 格式,Release 自动化会据此校验版本元数据并提取更新说明。
🐛 Bug 修复
GFCapabilityUtility现在由框架层主动维护能力实例的receiver字段,避免项目能力重写on_gf_capability_added()/on_gf_capability_removed()但忘记调用super时,Hook 内get_capability()返回 null。- 修复干净编辑器缓存下部分
:=写法无法完成类型推断,导致 Combat 发射器与核心测试脚本重新扫描时报 Parse Error 的问题。 - 修复 GF Workspace 关于弹窗可能沿用异常窗口高度的问题,并压缩正文布局,确保联系方式直接可见。
🔌 API 变动说明
- 新增公开类:无。
GFSurfaceUtility新增CacheMode、DEFAULT_AUTO_CACHE_SIZE、cache_mode、auto_cache_size、cache_mesh_surface()、erase_cached_mesh()、set_auto_cache_size()。GFQuadTreeUtility新增insert_with_hit_test()、set_entity_hit_test()、clear_entity_hit_test()、get_entity_rect()、query_point()、query_first_point()、compact()、get_debug_snapshot()。GFFlowGraphEditorModel.build_view_model()的节点条目新增execution_slot_index,端口条目新增graph_slot_index,连接条目新增from_graph_slot_index与to_graph_slot_index;原有字段保持兼容。GFExtensionManifest新增统一 kind:extension;旧 manifest 中的official/community不再兼容,会被校验为无效 kind。GF 内置扩展的extension_version与硬依赖边界由维护测试覆盖。GFExtensionManifest移除optional_dependencies字段;GFExtensionSettings.get_manifest_graph_report()同步移除optional_dependency_warnings与warning_count输出。GFExtensionCatalog新增load_extension_manifests()作为单目录扫描入口,移除旧load_official_manifests()/load_community_manifests()。GFExtensionSettings查询与路径收集方法移除include_community参数;扩展目录统一后不再需要社区扩展开关。
📘 升级指南
- 未直接引用旧扩展路径或旧扩展 ID 的项目通常无需迁移;GF 工作区改为默认弹出的独立窗口后,原有页面仍由相同 manifest/editor records 注入,关闭后可从工具菜单重新打开。
- 如果项目脚本、场景、资源或生成代码中直接引用了
res://addons/gf/extensions/official/<name>/...,请改为res://addons/gf/extensions/<name>/...。 - 如果项目设置或代码中使用
gf.official.<name>扩展 ID,必须改为gf.<name>;旧 ID 不再运行时兼容归一,会被启用状态诊断报告为未知扩展 ID。 - 如果曾把项目或第三方扩展放在
addons/gf/extensions/community,请迁移到项目自己的目录或独立 Godot 插件中,不再作为 GF 插件目录的一部分维护。 - 如果自定义工具直接读取
GFFlowGraphEditorModel的from_port_index/to_port_index驱动 GraphEdit,建议改用新增的from_graph_slot_index/to_graph_slot_index,避免节点级执行连接和数据端口 0 混淆。 - 如果项目依赖
GFQuadTreeUtility.insert()对同一 ID 产生重复索引,应改为显式使用不同实体 ID;现在重复插入同一 ID 会替换旧矩形。
📁 核心受影响文件
addons/gf/kernel/editor/gf_plugin_dock_tools.gdaddons/gf/kernel/editor/gf_plugin_actions.gdaddons/gf/kernel/editor/gf_editor_workspace_ui.gdaddons/gf/kernel/editor/gf_editor_workspace_window.gdaddons/gf/kernel/editor/extension/gf_extension_manager_dock.gdaddons/gf/kernel/extension/gf_extension_catalog.gdaddons/gf/kernel/extension/gf_extension_manifest.gdaddons/gf/kernel/extension/gf_extension_settings.gdaddons/gf/plugin.gdaddons/gf/plugin.cfgaddons/gf/extensions/*/gf_extension.json.github/workflows/release.ymltools/extract_release_notes.pyAI_MAINTENANCE.mdASSET_LIBRARY.mdaddons/gf/extensions/flow/editor/gf_flow_graph_dock.gdaddons/gf/extensions/flow/editor/gf_flow_graph_editor_model.gdaddons/gf/extensions/capability/core/gf_capability_utility.gdaddons/gf/standard/state_machine/node/editor/gf_node_state_machine_dock.gdaddons/gf/standard/utilities/debug/editor/gf_signal_graph_dock.gdaddons/gf/standard/utilities/display/gf_surface_utility.gdaddons/gf/standard/utilities/spatial/gf_quad_tree_utility.gdaddons/gf/standard/utilities/storage/editor/gf_storage_viewer_dock.gddocs/zh/editor/index.mddocs/zh/extensions/index.mddocs/zh/extensions/capability/index.mddocs/zh/extensions/flow-domain-physics/index.mddocs/zh/standard/utilities/runtime/debug-observability.mddocs/zh/standard/input-flow/spatial-query.mddocs/zh/standard/utilities/runtime/settings-ui-scene.mdtests/gf_core/kernel/editor/test_gf_plugin_helpers.gdtests/gf_core/kernel/extension/test_gf_extension_manifest.gdtests/gf_core/maintenance/test_layer_boundary_validation.gdtests/gf_core/extensions/flow/test_gf_flow_graph.gdtests/gf_core/extensions/capability/test_gf_capability_utility.gdtests/gf_core/standard/utilities/display/test_gf_surface_utility.gdtests/gf_core/standard/utilities/spatial/test_gf_quad_tree_utility.gd