# Slirary.LightFsm **Repository Path**: lemon_soda/light-fsm-sample ## Basic Information - **Project Name**: Slirary.LightFsm - **Description**: 个人轻量化状态机插件及示例 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-09-22 - **Last Updated**: 2023-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 轻量级状态机插件LightFsm 这是我个人正在使用的轻量级状态机。代码总共不到200行,实现了一个标准FSM的基础功能。 ## 使用方法 ### 创建状态机 ``` IFsm fsm = new LightFsm(); ``` 如果需要默认状态值,则需要在构造函数当中设置。 ### 加入各种状态 ``` void AddState(int state, Action onEnter, Action onExit, Action onUpdate) ``` 此处可以设置进入状态的操作,在该状态的Update()当中的操作,以及退出状态时调用的操作。 注意参数尽量不要传入匿名委托,会造成性能不佳。 ### 设置状态中的转换 ``` bool AddTransition(int from, int to, int triggerCode) ``` 此处设置从状态A到B时需要触发的转换码。 ### 触发转换 ``` bool TriggerEvent(int eventCode) ``` 传入转换码,当转化码对当前状态有效时,进行状态转换。 ### Update ``` void Update(float time) ``` 需要在某个MonoBehaviour的Update中调用lightFsm的这个方法,这个方法会实际调用当前状态下的Update。 ### 注 示例中使用的小鸡动画及模型资源为AssetStore上收费模型,本人仅获取自身使用授权,其他人不得用于商用。 LightFsm本身属于GPL许可证,可进行复制使用修改及二次发布。