跳转至

节点状态 Hook、资源片段与校验

这一组文档说明节点状态如何访问架构依赖、注册事件、组合条件与行为资源、分发状态事件,并在编辑器中执行结构校验。

阅读入口

使用边界

这些资源基类只定义状态节点上下文和生命周期钩子,不规定动画命名、输入动作、AI 黑板字段或业务事件含义。

状态事件与快照

GFNodeStateMachine.dispatch_state_event(event_id, payload, group_name) 可以指定某个状态组,也可以在 group_name 为空时按已注册状态组顺序广播。单个 GFNodeStateGroup 会先交给当前状态,再交给暂停栈中的状态。状态脚本重写 _handle_state_event() 并返回 true 即表示事件已处理。

get_state_snapshot() 可返回各状态组当前状态、栈、历史、注册状态和黑板副本,适合调试面板或诊断命令消费。状态组和状态机快照都带 schema_version = 1;恢复入口只接受明确版本,不把任意调试字典当作恢复输入。

restore_state_snapshot() 会先校验所有目标状态、当前状态、暂停栈、历史上限和 blackboard,再进入恢复事务。恢复 hook 中触发的 transition、push、pop、增删状态、start/stop/reload 会被阻止并写入 blocked_operations;任一组恢复失败时,状态机按恢复前快照整体回滚。返回报告稳定包含 report_schema_versionstatusokrestoredpartialrolled_back。快照中多出的未注册 group 仍按 lenient policy 记入 unrestored_group_snapshotspartial,不会动态创建业务状态组。