Exemple #1
0
    void Update()
    {
        if (explosionAnimation.normPosition > 0.2f)
        {
            Destroy(this);
            //This assumes that the explosion is a sphere, so .x is the radius
            Collider [] cars = Physics.OverlapSphere(transform.position, explosionAnimation.startScale.x / 2f);

            foreach (Collider carCollider in cars)
            {
                CarScript car = carCollider.GetComponent <CarScript>();
                if (car)
                {
                    car.dead = true;
                    car.rigidBod.constraints = RigidbodyConstraints.None;
                    car.rigidBod.velocity   += (car.transform.position - transform.position).normalized * pushPower;
                    car.rigidBod.drag        = 0f;
                    car.rigidBod.angularDrag = 0f;
                    car.rigidBod.useGravity  = false;

                    Collider[] carColliders = car.GetComponentsInChildren <Collider>();

                    foreach (Collider coll in carColliders)
                    {
                        Destroy(coll);
                    }
                    Destroy(car.gameObject, 3f);
                }
            }
        }
    }