private void SpawnObjects() { int amountOfGroundTiles = grid.OfType <GroundTile>().Count(); int remainingPointBudget = Mathf.RoundToInt(Mathf.Sqrt(amountOfGroundTiles)); Debug.Log("Total budget: " + remainingPointBudget); for (int i = remainingPointBudget; i > 0;) { GridObject objectToSpawn = DetermineWhichObjectToSpawn(remainingPointBudget, out remainingPointBudget); if (objectToSpawn != null) { Instantiate(objectToSpawn, Vector3.zero, Quaternion.identity); } i = remainingPointBudget; } }