// Update is called once per frame void Update() { // Get input vector // Give input to your state var newState = state.Update(underwater); if (newState != null) { Debug.Log("Transitioning to " + newState); state = newState; } animationManager.UpdateMovementParams(state.GetCurrentLateralTurnSpeed(), state.GetCurrentVerticalTurnSpeed(), 0, underwater, false); cameraController.UpdateMovementParameters(state.GetCurrentVelocity().magnitude / 15, 0); }