关于 unity-fsm
unity-fsm 是面向 Unity 的模块化面向对象有限状态机技能,采用 Adam Myhre 的 3D Platformer 实现模式,提供状态、转换、计时器和检测机制。
主要功能
- 01基于类的状态机基础
- 02支持 Heavy 和 ActionState 状态
- 03基于谓词的状态转换
- 04CountdownTimer 和 StopwatchTimer
- 05检测策略与 AI 模板
适用场景
- 01组织玩家控制器状态
- 02构建敌人 AI 状态流程
- 03添加基于谓词的状态转换
- 04管理 AI 冷却计时与检测
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ muharremtozan/ unity-agent-skills --skill unity-fsm安装后在 Claude Code 中输入/unity-fsm确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/code/ActionState.cs.txtBaseState.cs.txtConeDetectionStrategy.cs.txtEnemy.cs.txtEnemyBaseState.cs.txtFuncPredicate.cs.txtIDetectionStrategy.cs.txtIPredicate.cs.txtIState.cs.txtITransition.cs.txtPlayerDetector.cs.txtStateMachine.cs.txtTimer.cs.txtTransition.cs.txtreferences/enemy-ai.mdguide.md详细介绍
Unity 有限状态机(FSM)
此技能提供一种模块化、面向对象的状态机架构,适用于 Unity,并经过专门重构,以匹配 Adam Myhre 的 3D Platformer 中的实现。
核心功能
- 面向对象:每个状态都是一个独立的类。
- 混合支持:同时支持“重量级”(类)和“轻量级”(
ActionState)状态。 - 基于策略的转换:使用谓词和检测策略。
- 计时器系统:包含 Adam Myhre 的
CountdownTimer和StopwatchTimer。 - 命名空间支持:使用
Platformer和Utilities命名空间。
核心文件(assets/code/)
IState.cs.txt、StateMachine.cs.txt、IPredicate.cs.txt:FSM 基础逻辑。ActionState.cs.txt:新增! 基于 Lambda 的状态,可减少样板代码。Timer.cs.txt:AI 冷却时间管理。IDetectionStrategy.cs.txt、ConeDetectionStrategy.cs.txt:感知逻辑。PlayerDetector.cs.txt、Enemy.cs.txt、EnemyBaseState.cs.txt:AI 模板。
使用指南
- GUIDE.md:FSM 的常规设置与连接。
- ENEMY-AI.md:使用检测策略实现 AI 的专项指南。
实现模式
- 定义:继承
BaseState来定义状态。 - 连接:在
PlayerController或EnemyAI中使用stateMachine.AddTransition连接状态。 - 执行:通过调用状态机的
Update()和FixedUpdate()来运行。
评论
支持 Markdown