private void CreateExplosion(Vector3 position) { // Show explosion effect - TODO: Add sound Instantiate(explosionEffect, position, Quaternion.identity); // Brake objects in the explosion radius Collider[] collidersToBrake = Physics.OverlapSphere(position, explosionRadius, breakableLayerMask); foreach (Collider nearbyObject in collidersToBrake) { Destructible destructable = nearbyObject.GetComponent <Destructible>(); if (destructable != null) { destructable.Brake(); } } // Move objects near the explosion Collider[] collidersToMove = Physics.OverlapSphere(position, explosionRadius, movableLayerMask); foreach (Collider nearbyObject in collidersToMove) { Rigidbody rb = nearbyObject.GetComponent <Rigidbody>(); if (rb != null) { rb.AddExplosionForce(explosionForce, position, explosionRadius); } } }