public void RemoveState(ZombieStateType stateName)
 {
     if (!States.ContainsKey(stateName))
     {
         return;
     }
     States.Remove(stateName);
 }
 public void AddState(ZombieStateType stateName, State state)
 {
     if (States.ContainsKey(stateName))
     {
         return;
     }
     States.Add(stateName, state);
 }
 public void Intialize(ZombieStateType startingState)
 {
     if (States.ContainsKey(startingState))
     {
         ChangeState(startingState);
     }
     else if (States.ContainsKey(ZombieStateType.Idle))
     {
         ChangeState(ZombieStateType.Idle);
     }
 }
    public void ChangeState(ZombieStateType nextState)
    {
        if (Running)
        {
            StopRunningState();
        }

        if (!States.ContainsKey(nextState))
        {
            return;
        }
        CurrentState = States[nextState];
        CurrentState.Start();

        if (CurrentState.UpdateInterval > 0)
        {
            InvokeRepeating(nameof(IntervalUpdate), 0.0f, CurrentState.UpdateInterval);
        }

        Running = true;
    }
Beispiel #5
0
 public ZombieStates(ZombieComponent zombie, ZombieStateType stateMachine) : base(stateMachine)
 {
     OwnerZombie = zombie;
 }