void SpawnFormation(ObstacleFormation obstacleFormation)
 {
     for (var i = 0; i < obstacleFormation.ObstaclesNumber; i++)
     {
         var obstaclePosition = new Vector3(
             MovementHelper.LinePositions[obstacleFormation.OccupiedLines.ElementAt(i)],
             Random.Range(obstacleFormation.MinObstacleHeight, obstacleFormation.MaxObstacleHeight),
             obstacleFormation.Distance);
         Instantiate(obstaclePrefab, obstaclePosition, Quaternion.identity);
     }
 }
        public void Spawn()
        {
            obstacleFormations    = new List <ObstacleFormation>();
            lastFormationPosition = firstFormationDistanceFromZero;

            for (var i = 0; i < formationsToSpawn; i++)
            {
                var obstacleFormation = new ObstacleFormation(
                    GetRandomObstaclesNumber(),
                    lastFormationPosition,
                    minObstacleHeight,
                    maxObstacleHeight);

                SpawnFormation(obstacleFormation);
                obstacleFormations.Add(obstacleFormation);
                lastFormationPosition += Random.Range(minDistanceBetweenFormations, maxDistanceBetweenFormations);
            }

            Debug.Log(obstacleFormations.Count);
        }