public void spawn() { time = 0; previousTime = Time.time; for (int i = 0; i < asteroidNumber; ++i) { incAsteroidCount(); int spawnLocation = (int)Random.Range(0.0f, 4.0f); Rigidbody newAsteroid1 = (Rigidbody)Instantiate(asteroid, transform.position, transform.rotation); asteroidScript newAsteroid1Scr = newAsteroid1.GetComponent <asteroidScript>(); newAsteroid1Scr.newAsteroid(); newAsteroid1Scr.setSize(1); switch (spawnLocation) { case 0: newAsteroid1Scr.setPosition(new Vector3(Random.Range(xMin, xMax), 0.0f, zMin)); break; case 1: newAsteroid1Scr.setPosition(new Vector3(Random.Range(xMin, xMax), 0.0f, zMax)); break; case 2: newAsteroid1Scr.setPosition(new Vector3(xMin, 0.0f, Random.Range(zMin, zMax))); break; case 3: newAsteroid1Scr.setPosition(new Vector3(xMax, 0.0f, Random.Range(zMin, zMax))); break; } } }
void OnTriggerEnter(Collider collider) { if (collider.tag == "asteroid") { asteroidScript ast = collider.GetComponent <asteroidScript>(); ast.recieveExplosion(transform.position); } }
public void divideAsteroid() { if (explosionTimer > 0) { return; } Rigidbody astExp = (Rigidbody)Instantiate(asteroidExplosion, transform.position, transform.rotation); astExp.velocity = rigidBody.velocity; if (size < 3) { Rigidbody newAsteroid1 = (Rigidbody)Instantiate(asteroid, transform.position, transform.rotation); asteroidScript newAsteroid1Scr = newAsteroid1.GetComponent <asteroidScript>(); newAsteroid1Scr.newAsteroid(); newAsteroid1Scr.setSize(size + 1); newAsteroid1Scr.setPosition(newPos1.position); newAsteroid1Scr.setMass(rigidBody.mass / 2); newAsteroid1Scr.setExplosionTimer(); asteroidSpawner.incAsteroidCount(); Rigidbody newAsteroid2 = (Rigidbody)Instantiate(asteroid, transform.position, transform.rotation); asteroidScript newAsteroid2Scr = newAsteroid2.GetComponent <asteroidScript>(); newAsteroid2Scr.newAsteroid(); newAsteroid2Scr.setSize(size + 1); newAsteroid2Scr.setPosition(newPos2.position); newAsteroid2Scr.setMass(rigidBody.mass / 2); newAsteroid2Scr.setExplosionTimer(); asteroidSpawner.incAsteroidCount(); newAsteroid1.AddExplosionForce(1000.0f, transform.position, expRadius, 5.0f); newAsteroid1Scr.setVelocity(newAsteroid1.velocity + rigidBody.velocity); newAsteroid2.AddExplosionForce(1000.0f, transform.position, expRadius, 5.0f); newAsteroid1Scr.setVelocity(newAsteroid2.velocity + rigidBody.velocity); } Destroy(gameObject); asteroidSpawner.decAsteroidCount(); }