private void Awake() { gameController = GameObject.Find("GameController").GetComponent <GameController>(); navManager = GameObject.Find("NavigationManager").GetComponent <NavManager>(); asteroidManager = GameObject.Find("GameController").GetComponent <AsteroidManager>(); asteroidManager.ShiftAway(); int selectedAstIndex = navManager.selectedAsteroidIndex; asteroidPreviouslyGenerated = asteroidManager.asteroids[selectedAstIndex].prevgenerated; if (!asteroidPreviouslyGenerated) { seed = asteroidManager.AsteroidSeeds[selectedAstIndex]; planet = Instantiate(planetPrefab); planet.transform.position = new Vector3(0, 0, 0); Random.InitState(seed); /* List of settings to be randomised: * noise layer 1 centre: Vector3 * noise layer 2 centre: Vector3 * noise layer 3 centre: Vector3 */ ShapeSettings.NoiseLayer[] noiseLayers = planet.GetComponent <Planet>().shapeSettings.noiseLayers; foreach (ShapeSettings.NoiseLayer noiseLayer in noiseLayers) { noiseLayer.noiseSettings.simpleNoiseSettings.centre = new Vector3(Random.Range(-100f, 100f), Random.Range(-100f, 100f), Random.Range(-100f, 100f)); noiseLayer.noiseSettings.rigidNoiseSettings.centre = new Vector3(Random.Range(-100f, 100f), Random.Range(-100f, 100f), Random.Range(-100f, 100f)); } planet.transform.SetParent(gameController.transform); asteroidManager.planets[selectedAstIndex] = planet; } else { asteroidManager.planets[selectedAstIndex].SetActive(true); } }