public F3_BaseState(string name, OnEnterState onEnter, OnUpdateState onUpdate, OnExitState onExit)
 {
     m_stateName = name;
     m_onEnter = onEnter;
     m_onUpdate = onUpdate;
     m_onExit = onExit;
 }
Example #2
0
    protected override void OnDestroy()
    {
        foreach (var param in m_parameters)
        {
            param.Clear();
        }

        states.Clear(true);
        preStateTransitions.Clear(true);
        anyStateTransitions.Clear(true);
        subStateMachines.Clear();
        hitEffects.Clear();
        deadEffects.Clear();

        m_coolGroups.Clear();
        m_passiveHash.Clear();

        m_laydown = null;

        creature      = null;
        passiveSource = null;
        passiveMask   = 0;

        info         = null;
        onStateEnded = null;
        onEnterState = null;
        onQuitState  = null;
        onRebuild    = null;
    }
Example #3
0
 public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (OnEnterState != null)
     {
         OnEnterState.Invoke(stateInfo.shortNameHash);
     }
 }
Example #4
0
 public NetBaseState(TcpSocket parent, NETWORKSTATE netState = NETWORKSTATE.NS_NONE, OnEnterState enter = null, OnExitState exit = null)
 {
     this.parent   = parent;
     this.netState = netState;
     onEnter       = enter;
     onExit        = exit;
 }
Example #5
0
 public virtual void EnterState()
 {
     Debug.Log("Entering State");
     for (int i = 0; i < transform.childCount; i++)
     {
         transform.GetChild(i).gameObject.SetActive(true);
     }
     OnEnterState.Invoke();
 }
Example #6
0
        private IEnumerator LoadScenesCoroutine(SceneState state)
        {
            OnExitState?.Invoke(currentState, state);

            //Loading to Empty Scene to avoid memory bloat during cross-load
            AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(stateList[SceneState.Empty].SceneName);

            while (!asyncLoad.isDone)
            {
                yield return(null);
            }

            //Actually loading new scene
            asyncLoad = SceneManager.LoadSceneAsync(stateList[state].SceneName, LoadSceneMode.Single);
            while (!asyncLoad.isDone)
            {
                yield return(null);
            }

            OnEnterState?.Invoke(currentState, state);
            currentState = state;
        }
        public bool CreateState(string sName, OnEnterState enterFunc, OnUpdateState updateFunc, OnExitState exitFunc)
        {
            if (FindState(sName) != null)
            {
                // We don't want any duplicate.
                return false;
            }

            F3_BaseState newState = new F3_BaseState(sName, enterFunc, updateFunc, exitFunc);

            if (newState == null)
            {
                // Failed to Create.
                return false;
            }

            m_states.Add(newState);

            return true;
        }
Example #8
0
 public virtual void EnterState(FiniteStateMachine fsm)
 {
     OnEnterState?.Invoke();
 }