SuperAPI AI 工具集

state-machine

编程与开发

查看项目

更新于 10-15 22:40

技能介绍

用途:在 Godot 4.3+ 项目中实现有限状态机(FSM),并帮助选择与复杂度匹配的模式;示例不使用已废弃 API。

主要能力: 1)枚举式:用 enum 加 match/switch 管理少量状态,适合状态少于 5 个、无复杂进入/退出逻辑的简单对象;提供 GDScript 与 C# 等价示例。升级信号包括进入/退出逻辑重复、动画需要显式钩子、match 块超过约 100 行。 2)节点式:每个状态为一个节点,StateMachine 节点把输入与 process 调用委托给当前状态,状态按名称触发切换;提供 State 基类与 StateMachine 类的 GDScript、C# 实现,以及 IdleState 具体示例。适合角色等复杂行为。 3)资源式:用 StateData 资源(state_name、animation_name、move_speed、can_transition_to)在 Inspector 中配置状态,设计者无需改代码即可调参;运行时按名称查找并校验切换。适合数据驱动或需编辑器配置的 AI。

用法要点:状态应有显式 enter()/exit();切换目标名称需明确,避免隐式直落;动画在 enter() 启动、必要时在 exit() 清理;注意同帧内循环切换导致的无限递归。状态超过约 8 个或跨多关注点时可拆为层级式(状态内含子状态机,如 OnGround 含 Idle/Walk/Run)或并行式(移动、战斗、动画各自独立 FSM),并行机之间不应修改同一状态(如同时设置 velocity)。文中给出决策流程图与实现检查清单。

相关技能与替代:与 player-controller、ai-navigation、resource-pattern、animation-system、dialogue-system、ability-system 等技能相关。若需要完整行为树,可用 LimboAI(C++ 与 HSM,Godot 4.6+)或 Beehave(纯 GDScript,Godot 4.1+)。

限制:仅覆盖内置 FSM 模式,行为树需借助上述插件;具体收费、价格与平台支持范围资料未提供。