using UnityEngine; namespace XFFSM { /// /// 状态基类 /// public abstract class FSMState { #region 字段 /// /// 状态控制器 /// public FSMController controller; /// /// 当前状态信息 /// public FSMStateNode currentStateInfo; /// /// 自定义数据(通过FSMController.StartupFSM()启动状态机传递自定义数据) /// public object userData; /// /// 上一个状态的名称 /// public string lastState; /// /// 将要切换的下一个状态的名称(该字段仅在状态将要退出(OnExit)时有值) /// public string nextState; #endregion #region 属性 public Transform transform => controller != null ? controller.transform : null; #endregion #region 方法 /// /// 当第一次进入该状态时调用,该方法仅调用一次(初始化相关操作推荐放该方法中) /// public virtual void OnCreate() { } /// /// 当状态进入时执行 /// public virtual void OnEnter() { } /// /// 当状态退出时执行 /// public virtual void OnExit() { } /// /// 每帧执行 /// public virtual void OnUpdate() { } /// /// FixedUpdate时执行 /// public virtual void OnFixedUpdate() { } /// /// LateUpdate时执行 /// public virtual void OnLateUpdate() { } #endregion } }