private void HandleStateChange(object sender, InputStateChangeArgs e) { currentState.StateChange -= HandleStateChange; currentState = currentState.NextState; currentState.EnterInputState(e); currentState.StateChange += HandleStateChange; }
protected virtual void PostStateChange(InputStateChangeArgs args) { var handler = StateChange; if (handler != null) { handler(this, args); } }
public abstract void EnterInputState(InputStateChangeArgs args = null);
public virtual void ExitState(InputStateChangeArgs args = null) { PostStateChange(args); }
public override void EnterInputState(InputStateChangeArgs args = null) { RegisterSpawnButtonsClick(); }
public override void ExitState(InputStateChangeArgs args = null) { UnRegisterSpawnButtonsClick(); base.ExitState(args); }
public override void EnterInputState(InputStateChangeArgs args = null) { currentWeapon = args as SpawnWeaponInputArgs; RegisterSpawnButtonsClick(); }