# FSMState class in XFFSM ### 说明: 状态基类 ### 字段 | 名称 | 说明 | | ----------- | ----------- | | controller | 状态控制器 | | currentStateInfo | 当前状态信息 | | userData | 自定义数据(通过FSMController.StartupFSM()启动状态机传递自定义数据) | | lastState | 上一个状态的名称 | | nextState | 将要切换的下一个状态的名称(该字段仅在状态将要退出(OnExit)时有值) | ### 属性 | transform | 状态控制器所在的Transform | ### 方法 | 名称 | 说明 | | ----------- | ----------- | | OnCreate| 当第一次进入该状态时调用,该方法仅调用一次(初始化相关操作推荐放该方法中) | | OnEnter| 当状态进入时执行 | | OnExit| 当状态退出时执行 | | OnUpdate| 每帧执行 | | OnFixedUpdate| FixedUpdate时执行 | | OnLateUpdate| LateUpdate时执行 | ### 代码示例 > ```none > >using UnityEngine; > >public class TestState1 : FSMState >{ > private Player player; > public override void OnEnter() > { > base.OnEnter(); > // 可以通过controller访问该游戏物体身上的其他组件,执行逻辑 > // Transform transform = controller.GetComponent(); > } > > public override void OnExit() > { > base.OnExit(); > } > > public override void OnUpdate() > { > base.OnUpdate(); > if (player == null) > player = controller.GetComponent(); > player.Rotate(); > } > > public override void OnFixedUpdate() > { > base.OnFixedUpdate(); > } > > public override void OnLateUpdate() > { > base.OnLateUpdate(); > } > >} > ```