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; }
public ZombieStates(ZombieComponent zombie, ZombieStateType stateMachine) : base(stateMachine) { OwnerZombie = zombie; }