bool CheckForNewState() { BallController newController = controller.CheckTransitions(ball.state, rb2d); if (newController != null) { controller.Exit(ball.state, rb2d); controller = newController; ball.state.timeInState.Value = 0f; controller.Enter(ball.state, rb2d); return(true); } else { return(false); } }