// Update is called once per frame void Update() { newState = currentState.DoState(this); if (currentState != newState) { //so if we DO change states. we will call Init, //then DoState will be called next frame. So dont have Init call DoState(); currentState = newState; currentState.InitState(this); } }
void Start() { currentState = idleInactiveState; currentState.InitState(this); }