mcpField
U
unity-fsm

unity-fsm

github.com/muharremtozan开发1767 次安装22 周前更新
代码仓库

关于 unity-fsm

unity-fsm 是面向 Unity 的模块化面向对象有限状态机技能,采用 Adam Myhre 的 3D Platformer 实现模式,提供状态、转换、计时器和检测机制。

主要功能

  1. 01基于类的状态机基础
  2. 02支持 Heavy 和 ActionState 状态
  3. 03基于谓词的状态转换
  4. 04CountdownTimer 和 StopwatchTimer
  5. 05检测策略与 AI 模板

适用场景

  1. 01组织玩家控制器状态
  2. 02构建敌人 AI 状态流程
  3. 03添加基于谓词的状态转换
  4. 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.txt
BaseState.cs.txt
ConeDetectionStrategy.cs.txt
Enemy.cs.txt
EnemyBaseState.cs.txt
FuncPredicate.cs.txt
IDetectionStrategy.cs.txt
IPredicate.cs.txt
IState.cs.txt
ITransition.cs.txt
PlayerDetector.cs.txt
StateMachine.cs.txt
Timer.cs.txt
Transition.cs.txt
references/
enemy-ai.md
guide.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 的专项指南。

实现模式

  1. 定义:继承 BaseState 来定义状态。
  2. 连接:在 PlayerController 或 EnemyAI 中使用 stateMachine.AddTransition 连接状态。
  3. 执行:通过调用状态机的 Update() 和 FixedUpdate() 来运行。

评论

支持 Markdown