public void UpdateStateStackOnEnter(UIBaseState uiState) { if (uiState == null) { return; } if (this.uiGraph == null) { return; } int stateIndex = uiStateStack.IndexOf(uiState); if (stateIndex != -1) { int removeIndex = stateIndex + 1; if (removeIndex < uiStateStack.Count) { for (int i = removeIndex, count = uiStateStack.Count; i < count; i++) { uiStateStack[i].UnlistenPlayerAction(); } uiStateStack.RemoveRange(removeIndex, uiStateStack.Count - removeIndex); } } else { AddUIState(uiState); } }
public void RemoveUIState(UIBaseState uiState) { if (uiState == null) { return; } uiStateStack.Remove(uiState); }
public void AddUIState(UIBaseState uiState) { if (uiState == null) { return; } uiStateStack.Add(uiState); }
private void Handle_StatePreEnter(UIBaseState enteredState) { // if (this.enteredState.Equals("Tutorial General")) // UnityEngine.Debug.Log("State: " + enteredState.name); bool isTrue = enteredState.name.Equals(this.enteredState); if (invert) { isTrue = !isTrue; } YieldReturn(isTrue); }
public void GoToState(UIBaseState targetState) { NodeCanvas.StateMachines.FSM fsm = uiGraph.behaviour; UIBaseState currState = null; if (uiStateStack.Count > 1) { currState = uiStateStack[uiStateStack.Count - 1]; } AppEventsManager.Publish_StateTransition(currState, targetState); //Debug.Log($"GOTO STATE {targetState.name} in [{fsm.name}]"); fsm.TriggerState(targetState.name); }
public static void Publish_StateExit(UIBaseState state) { Evt_OnStateExit?.Fire(state); }
public static void Publish_StatePostEnter(UIBaseState state) { Evt_OnStatePostEnter?.Fire(state); }