public void FixedUpdateStack() { if (m_stateStack.Count > 0) { FlowStateBase state = m_stateStack.Peek(); state.FixedUpdateState(); } }
public void UpdateStack() { if (m_stateStack.Count > 0) { FlowStateBase state = m_stateStack.Peek(); state.UpdateState(); if (state.IsDismissed()) { m_stateStack.Pop(); } } }
public void PopState(FlowStateBase state) { Debug.Assert(m_stateStack.Count > 0 && m_stateStack.Peek() == state, "Trying to pop non active state"); m_stateStack.Peek().EndActiveState(); }
public void PushState(FlowStateBase state) { Debug.Assert(m_stateStack.Count == 0 || m_stateStack.Peek() != state, "Trying to push already active state"); m_stateStack.Push(state); state.SetStateController(this); }