Skip to content

UnityCodeLibraries/Fsm

Repository files navigation

Fsm

简易封装的状态机

S3.0.0

应用场景:

  • 当你需要一个状态转换系统(例如玩家, 怪物等的自动状态管理系统)时, 使用此Fsm, 该系统提供成品状态机以及可供改写的基本结构

现有功能:

  1. 稳定的基础State结构判定进入退出条件以及执行事件函数
  2. 稳定的Fsm结构用于自动管理状态转换, 以及可嵌套状态机, 以及多模式状态机{普通, 无敌}
  3. 顺畅的状态转换手感与动画: 待机, 移动WASD(快速移动Shift), 攻击J(特攻JU), 受伤Y, G切换无敌模式

如何使用:

  • 使用现有状态机: 4状态{Idle, Move, Attack, Hurt}

  1. 准备一个Gameobject并挂载EntityComponent
  2. 准备好角色的Idle, Move, Attack, SpecialAttack, Hurt动画, 单次动画需要连线自动退出
  3. 使用WASD进入移动状态LeftShift切换移速, J攻击U特殊攻击, Y受伤, G切换优先级模式{普通, 无敌}
    • 无敌模式受伤优先级为-1, 所以永远不会切换到这个状态
  4. 你可以额外挂载一个TestEntityComponent来在组件面板看到状态与按键变化, 以及日志显示状态转换情况

优缺点:

  • 优点:
    • 已经趋向成熟的State与Fsm结构和状态转换流程
    • 基本完整可用的普通状态机(包括位移属性与动画)
  • 缺点:
    • Fsm的Datas初始化结构还是不够标准化
    • 还未实验该状态机灵活性可重写性
    • 还未包含一些基本属性: 生命, 攻击判定等

下次目标:

  1. 完善生命组件部分
  2. 测试可扩展性:
    • 包括横向演化(新增)
      • 新增另一个状态机: 待机, 巡逻, 追逐, 攻击, 受伤, 死亡,
      • 可以写一个简单的ai来控制
    • 以及向下扩展(重写)
      • 另一种输入操作模式(新版InputSystem)

About

简易封装的状态机

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published