24 lines
1.0 KiB
C#
24 lines
1.0 KiB
C#
using UnityEngine;
|
|
|
|
public static class PPFXRigidbodyExtensions
|
|
{
|
|
public static void AddExplosionForce(this Rigidbody body, float explosionForce, Vector3 explosionRadiusCenter, float explosionRadius)
|
|
{
|
|
body.AddExplosionForce(explosionForce, explosionRadiusCenter, explosionRadius, new Vector3(0f, 0f, 0f));
|
|
}
|
|
|
|
public static void AddExplosionForce(this Rigidbody body, float explosionForce, Vector3 explosionRadiusCenter, float explosionRadius, Vector3 explosionOriginPoint)
|
|
{
|
|
body.AddExplosionForce(explosionForce, explosionRadiusCenter, explosionRadius, explosionOriginPoint, ForceMode.Force);
|
|
}
|
|
|
|
public static void AddExplosionForce(this Rigidbody body, float explosionForce, Vector3 explosionRadiusCenter, float explosionRadius, Vector3 explosionOriginPoint, ForceMode mode)
|
|
{
|
|
if (Vector3.Distance(body.transform.position, explosionRadiusCenter) <= explosionRadius)
|
|
{
|
|
Vector3 vector = body.transform.position - (explosionRadiusCenter + explosionOriginPoint);
|
|
body.AddForce(vector * (explosionForce / 5f), mode);
|
|
}
|
|
}
|
|
}
|