void UpdateMeteorCount() { level = GameObject.Find("LevelManager").GetComponent <LevelManager>().level; int meteorCount = maxMeteorCount + (level / 4); //Banking on truncation here. while (gameObject.transform.childCount < meteorCount) { rndAngle = Random.value * Mathf.PI * 2; meteorStartDistance = distanceToCornerOfScreen + Random.value * 5.0f; rndMeteorStart = new Vector3(Mathf.Cos(rndAngle) * (meteorStartDistance), Mathf.Sin(rndAngle) * (meteorStartDistance), 0); if (Random.value > 0.85) { int pu = Random.value > 0.5 ? 0 : 1; GameObject powerUp = Instantiate(powerUps[pu], rndMeteorStart, Quaternion.identity) as GameObject; powerUp.transform.parent = this.gameObject.transform; } else { Transform newMeteor = Instantiate(baseMeteor, rndMeteorStart, Quaternion.identity) as Transform; newMeteor.transform.parent = this.gameObject.transform; PlanetaryGravity grav = newMeteor.GetComponent <PlanetaryGravity>(); float gForce = grav.gravitationCoefficient; newMeteor.GetComponent <PlanetaryGravity>().gravitationCoefficient = gForce + ((level - 1) * gForce / 10); } } }
// Awake(), when all objects has been initialised. void Awake( ) { orbitShootScr = GetComponent <OrbitShoot>(); planetaryGravityScr = GetComponent <PlanetaryGravity>(); targetPlanet = targetAsteroid.gameObject; UpdatePlanetaryGravity(orbitRadius, orbitSpeed, targetPlanet.transform); UpdateOrbitShoot(shootForce); // Set the references. orbitShootScr.RadVis = radVisPrefab; }