public static GameObject CreateSystem(int seed) { GameObject newSystem = new GameObject("StarSystem"); Random.InitState(seed); StarSystemInfo ssi = GetStarSystemInfo(seed); int numberOfBodies = ssi.numberOfPlanets; if (ssi.asteroidBelt) { numberOfBodies++; } GameObject newStar = CelestialBody.CreateStar(Vector3.zero, Random.Range(0, 99999), ssi.starType); newStar.transform.parent = newSystem.transform; for (int i = 0; i < numberOfBodies; i++) { if (ssi.asteroidBelt) { if (Random.Range(0, 100) > 50) { AddAsteroidBelt(i).transform.parent = newSystem.transform; ssi.asteroidBelt = false; } else if (i == (numberOfBodies - 1)) { AddAsteroidBelt(i).transform.parent = newSystem.transform; ssi.asteroidBelt = false; } else { AddPlanet(i).transform.parent = newSystem.transform; } } else { AddPlanet(i).transform.parent = newSystem.transform; } } CreateSystemEdgeRing(ssi.systemSize).transform.parent = newSystem.transform; return(newSystem); }