Ejemplo n.º 1
0
    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;
            }
        }
    }
Ejemplo n.º 2
0
 void OnTriggerEnter(Collider collider)
 {
     if (collider.tag == "asteroid")
     {
         asteroidScript ast = collider.GetComponent <asteroidScript>();
         ast.recieveExplosion(transform.position);
     }
 }
Ejemplo n.º 3
0
    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();
    }