void GenerateObject(SpawnerData data) { var objectToSpawn = data.ObjectToSpawn(); var spnParams = CalculateSpawnParameters(data); for (int i = 0; i < 100; i++) { if (CheckSpawnability(objectToSpawn, spnParams.position, spnParams.rotation, spnParams.scale)) { Instantiate(objectToSpawn, spnParams.position, spnParams.rotation); objectToSpawn.transform.parent = placeObjectsHere; objectToSpawn.transform.localScale = spnParams.scale; objectToSpawn.layer = gameObject.layer; break; } else { objectToSpawn = data.ObjectToSpawn(); spnParams = CalculateSpawnParameters(data); } } }