You've already forked taptap2024_GJ_chidouren
init
This commit is contained in:
87
Packages/com.xfkj.xffsm@357f537fea/Runtime/FSMState.cs
Normal file
87
Packages/com.xfkj.xffsm@357f537fea/Runtime/FSMState.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace XFFSM
|
||||
{
|
||||
/// <summary>
|
||||
/// 状态基类
|
||||
/// </summary>
|
||||
public abstract class FSMState
|
||||
{
|
||||
|
||||
#region 字段
|
||||
/// <summary>
|
||||
/// 状态控制器
|
||||
/// </summary>
|
||||
public FSMController controller;
|
||||
|
||||
/// <summary>
|
||||
/// 当前状态信息
|
||||
/// </summary>
|
||||
public FSMStateNode currentStateInfo;
|
||||
|
||||
/// <summary>
|
||||
/// 自定义数据(通过FSMController.StartupFSM()启动状态机传递自定义数据)
|
||||
/// </summary>
|
||||
public object userData;
|
||||
|
||||
/// <summary>
|
||||
/// 上一个状态的名称
|
||||
/// </summary>
|
||||
public string lastState;
|
||||
|
||||
/// <summary>
|
||||
/// 将要切换的下一个状态的名称(该字段仅在状态将要退出(OnExit)时有值)
|
||||
/// </summary>
|
||||
public string nextState;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 属性
|
||||
|
||||
public Transform transform => controller != null ? controller.transform : null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region 方法
|
||||
|
||||
/// <summary>
|
||||
/// 当第一次进入该状态时调用,该方法仅调用一次(初始化相关操作推荐放该方法中)
|
||||
/// </summary>
|
||||
public virtual void OnCreate() {
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当状态进入时执行
|
||||
/// </summary>
|
||||
public virtual void OnEnter() {
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当状态退出时执行
|
||||
/// </summary>
|
||||
public virtual void OnExit() { }
|
||||
|
||||
/// <summary>
|
||||
/// 每帧执行
|
||||
/// </summary>
|
||||
public virtual void OnUpdate() { }
|
||||
|
||||
/// <summary>
|
||||
/// FixedUpdate时执行
|
||||
/// </summary>
|
||||
public virtual void OnFixedUpdate() { }
|
||||
|
||||
/// <summary>
|
||||
/// LateUpdate时执行
|
||||
/// </summary>
|
||||
public virtual void OnLateUpdate() {
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user