Bunny83

RigidbodyExt.cs

Jul 27th, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. public static partial class RigidbodyExt
  4. {
  5.     public static void AddForceD(this Rigidbody aRB, Vector3 aForce, ForceMode aMode = ForceMode.Force)
  6.     {
  7.         switch(aMode)
  8.         {
  9.             case ForceMode.VelocityChange:
  10.                 aRB.velocity += aForce;
  11.                 break;
  12.             case ForceMode.Impulse:
  13.                 aRB.velocity += aForce / aRB.mass;
  14.                 break;
  15.             case ForceMode.Acceleration:
  16.                 aRB.velocity += aForce * Time.fixedDeltaTime;
  17.                 break;
  18.             case ForceMode.Force:
  19.                 aRB.velocity += aForce * Time.fixedDeltaTime / aRB.mass;
  20.                 break;
  21.         }
  22.     }
  23.     public static void AddRelativeForceD(this Rigidbody aRB, Vector3 aForce, ForceMode aMode = ForceMode.Force)
  24.     {
  25.         AddForceD(aRB, aRB.rotation * aForce, aMode);
  26.     }
  27.     public static void AddForceD(this Rigidbody aRB, float x, float y, float z, ForceMode aMode = ForceMode.Force)
  28.     {
  29.         AddForceD(aRB, new Vector3(x,y,z), aMode);
  30.     }
  31.     public static void AddRelativeForceD(this Rigidbody aRB, float x, float y, float z, ForceMode aMode = ForceMode.Force)
  32.     {
  33.         AddRelativeForceD(aRB, new Vector3(x, y, z), aMode);
  34.     }
  35. }
Add Comment
Please, Sign In to add comment