修改fsm
This commit is contained in:
@@ -4,84 +4,28 @@ using UnityEngine;
|
||||
|
||||
namespace Stary.Evo.FiniteStateMachine
|
||||
{
|
||||
public interface IState
|
||||
public interface IFSMIState
|
||||
{
|
||||
public FSMController Machine { get; set; }
|
||||
IFSMManager FsmManager { get; }
|
||||
string Name { get; }
|
||||
public void OnEnter();
|
||||
public void OnExit();
|
||||
public void Update();
|
||||
public void FixedUpdate();
|
||||
public void OnInit();
|
||||
public void OnDestory();
|
||||
|
||||
}
|
||||
|
||||
public abstract class AbstractState : IState
|
||||
public abstract class AbstractState : IFSMIState
|
||||
{
|
||||
public FSMController Machine { get; set; }
|
||||
public IFSMManager FsmManager { get; }
|
||||
public string Name { get; }
|
||||
public abstract void OnEnter();
|
||||
public abstract void OnExit();
|
||||
public abstract void Update();
|
||||
public abstract void FixedUpdate();
|
||||
public abstract void OnInit();
|
||||
public abstract void OnDestory();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 状态中具体行为:
|
||||
/// (OnInitAction:初始化)
|
||||
/// (OnEnterAction:进入)
|
||||
/// (UpdateAction:循环)
|
||||
/// (FixedUpdateAction:后循环)
|
||||
/// (OnExitAction:离开)
|
||||
/// (OnDestoryAction:销毁)
|
||||
/// </summary>
|
||||
public struct StateDateAction
|
||||
{
|
||||
public System.Action OnEnterAction;
|
||||
public System.Action OnExitAction;
|
||||
public System.Action UpdateAction;
|
||||
public System.Action FixedUpdateAction;
|
||||
public System.Action OnInitAction;
|
||||
public System.Action OnDestoryAction;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单个状态
|
||||
/// </summary>
|
||||
public class SingleState : AbstractState
|
||||
{
|
||||
public StateDateAction stateDate;
|
||||
public bool IsRunning;
|
||||
|
||||
public override void FixedUpdate()
|
||||
{
|
||||
stateDate.FixedUpdateAction?.Invoke();
|
||||
}
|
||||
|
||||
public override void OnDestory()
|
||||
{
|
||||
stateDate.OnDestoryAction?.Invoke();
|
||||
}
|
||||
|
||||
public override void OnEnter()
|
||||
{
|
||||
stateDate.OnEnterAction?.Invoke();
|
||||
}
|
||||
|
||||
public override void OnExit()
|
||||
{
|
||||
stateDate.OnExitAction?.Invoke();
|
||||
}
|
||||
|
||||
public override void OnInit()
|
||||
{
|
||||
stateDate.OnInitAction?.Invoke();
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
stateDate.UpdateAction?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user