using System; namespace OHM.UnityToolkit.FSM { public class StateBase where T : StateBase { public Action startAction; public Action updateAction; public Action leaveAction; public float MaxDuration { get; private set; } public StateBase NextState { get; private set; } public void SetAutoTransition(StateBase nextState, float duration) { MaxDuration = duration; NextState = nextState; } public void Enter() { if (startAction != null) { startAction(); } } public void Update() { if (updateAction != null) { updateAction(); } } public void Leave() { if (leaveAction != null) { leaveAction(); } } } }