private void GoToPos() { var actual = GameSystem.GetPosition(gameObject); if (GameSystem.AlmostEqualPositions(actual, goal)) { return; } if (IsBallStopped()) { var deltaX = goal.x - actual.x; var deltaZ = goal.z - actual.z; if (Math.Abs(deltaX) > Math.Abs(deltaZ)) { if (deltaX > 0) { Move("right"); } else { Move("left"); } } else { if (deltaZ > 0) { Move("up"); } else { Move("down"); } } } }