Beispiel #1
0
    void ExecuteExplosion()
    {
        float multiplier = 1f;

        PlayPartSysExplosion();

        float r           = radius * multiplier;
        var   cols        = Physics.OverlapSphere(transform.position, r);
        var   rigidbodies = new List <Rigidbody> ();

        foreach (var col in cols)
        {
            if (col.attachedRigidbody != null && !rigidbodies.Contains(col.attachedRigidbody))
            {
                rigidbodies.Add(col.attachedRigidbody);
            }

            if (col.gameObject.tag.Equals("HitedEnemy"))
            {
                EnemyDamage enemDamage = col.gameObject.GetComponent <EnemyDamage> ();
                enemDamage.SetDamage(100);
            }
        }
        foreach (var rb in rigidbodies)
        {
            rb.AddExplosionForce(explosionForce * multiplier, transform.position, r, 1 * multiplier, ForceMode.Impulse);
        }
    }
Beispiel #2
0
    void GunShot()
    {
        foreach (Bullet nRay in seletedRay)
        {
            RaycastHit hit = new RaycastHit();
            if (Physics.Raycast(nRay.Center, SumTwoVectors(nRay.vBullet, transfObj.forward * rangeshot), out hit, rangeshot))
            {
                if (hit.collider.gameObject.tag.Equals("HitedEnemy"))
                {
                    GameObject HitBlood = Instantiate(ParticleHited);
                    HitBlood.transform.position = hit.point;
                    HitBlood.transform.rotation = hit.transform.rotation;
                    EnemyDamage enemDamage = hit.collider.gameObject.GetComponent <EnemyDamage> ();
                    enemDamage.SetDamage(gunDamage);
                }
            }
        }

        Shot = false;
    }