unity rb.addexplosionforce 2d May 19, 2023April 14, 2023 by wordlinkanswers unity rb.addexplosionforce 2d Comment 0 using UnityEngine;</p><br /> <p>public static class Rigidbody2DExt {</p><br /> <p> public static void AddExplosionForce(this Rigidbody2D rb, float explosionForce, Vector2 explosionPosition, float explosionRadius, float upwardsModifier = 0.0F, ForceMode2D mode = ForceMode2D.Force) {<br /><br /> var explosionDir = rb.position – explosionPosition;<br /><br /> var explosionDistance = explosionDir.magnitude;</p><br /> <p> // Normalize without computing magnitude again<br /><br /> if (upwardsModifier == 0)<br /><br /> explosionDir /= explosionDistance;<br /><br /> else {<br /><br /> // From Rigidbody.AddExplosionForce doc:<br /><br /> // If you pass a non-zero value for the upwardsModifier parameter, the direction<br /><br /> // will be modified by subtracting that value from the Y component of the centre point.<br /><br /> explosionDir.y += upwardsModifier;<br /><br /> explosionDir.Normalize();<br /><br /> }</p><br /> <p> rb.AddForce(Mathf.Lerp(0, explosionForce, (1 – explosionDistance)) * explosionDir, mode);<br /><br /> }<br /><br /> } Popularity 5/10 Helpfulness 3/10 Language csharp Source: stackoverflow.com Tags: 2d c# Share Link to this answer Share Contributed on Mar 04 2020 Cooperative Centipede 0 Answers Avg Quality 2/10 wordlinkanswers