public F3_BaseState(string name, OnEnterState onEnter, OnUpdateState onUpdate, OnExitState onExit)
 {
     m_stateName = name;
     m_onEnter = onEnter;
     m_onUpdate = onUpdate;
     m_onExit = onExit;
 }
示例#2
0
 public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
 {
     if (OnExitState != null)
     {
         OnExitState.Invoke(stateInfo.shortNameHash);
     }
 }
 public void Tick()
 {
     if (monsterMovement.IsAtDestination())
     {
         OnExitState?.Invoke();
     }
 }
示例#4
0
 public override void ExitState()
 {
     // default behavior is to disable child objects
     // default behavior not called to persist menu sounds
     //base.ExitState();
     OnExitState.Invoke();
 }
示例#5
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;
 }
示例#6
0
 public virtual void ExitState()
 {
     Debug.Log("Exiting State");
     for (int i = 0; i < transform.childCount; i++)
     {
         transform.GetChild(i).gameObject.SetActive(false);
     }
     OnExitState.Invoke();
 }
 private void InvokeOnStateChange_OnExit(string id)
 {
     if (id == this.id)
     {
         if (OnExitState != null)
         {
             OnExitState.Invoke();
         }
     }
 }
    public void Tick()
    {
        waitTimer += Time.deltaTime;

        if (pointsSearched >= investigatePoints)
        {
            OnExitState?.Invoke();
        }
        else if (monsterMovement.IsAtDestination() && waitTimer >= waitTimeTarget)
        {
            pointsSearched += 1;
            GetNewTargetPoint();
        }
    }
示例#9
0
    private void SwitchState(
        System.Action OnEnterStateFunction,
        System.Action OnUpdateStateFunction,
        System.Action OnExitStateFunction)
    {
        if (OnExitState != null)
        {
            OnExitState.Invoke();
        }
        OnExitState   = OnExitStateFunction;
        OnUpdateState = OnUpdateStateFunction;
        OnEnterState  = OnEnterStateFunction;

        if (OnEnterState != null)
        {
            OnEnterState.Invoke();
        }
    }
示例#10
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;
        }
示例#12
0
 public virtual void ExitState(FiniteStateMachine fsm, IState stateToTransition)
 {
     OnExitState?.Invoke();
 }