Exemple #1
0
    private void Explode()
    {
        Collider[] colliders = Physics.OverlapSphere(transform.position, ExplosionRadius, ObjectMask);
        foreach (Collider collider in colliders)
        {
            Rigidbody targetRigidbody = collider.GetComponent <Rigidbody>();
            if (targetRigidbody != null)
            {
                targetRigidbody.AddExplosionForce(ExplosionForce, transform.position, ExplosionRadius, 0.05f);
                BoatHealth targetHealth = targetRigidbody.GetComponent <BoatHealth>();
                if (targetHealth != null)
                {
                    targetHealth.TakeDamage(CalculateDamage(targetRigidbody.position));
                }
            }
        }

        explosionAudio.Play();
        var impact = Instantiate(ImpactPrefab, transform.position, transform.rotation);

        Destroy(impact, 1);
        GetComponent <MeshRenderer>().enabled = false;
        GetComponent <Collider>().enabled     = false;
        Destroy(gameObject, 0.5f);
    }