Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 public void RemoveUIState(UIBaseState uiState)
 {
     if (uiState == null)
     {
         return;
     }
     uiStateStack.Remove(uiState);
 }
Beispiel #3
0
 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);
    }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 public static void Publish_StateExit(UIBaseState state)
 {
     Evt_OnStateExit?.Fire(state);
 }
Beispiel #7
0
 public static void Publish_StatePostEnter(UIBaseState state)
 {
     Evt_OnStatePostEnter?.Fire(state);
 }