Vector3Utils.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using UnityEngine;
  2. namespace HQFPSWeapons
  3. {
  4. public static class Vector3Utils
  5. {
  6. public static Vector3 LocalToWorld(Vector3 vector, Transform transform)
  7. {
  8. return transform.rotation * vector;
  9. }
  10. public static Vector3 WorldToLocal(Vector3 vector, Transform transform)
  11. {
  12. return Quaternion.Inverse(transform.rotation) * vector;
  13. }
  14. public static Vector3 Convert(Vector3 vector, Transform fromSpace, Transform toSpace)
  15. {
  16. Vector3 localToWorld = LocalToWorld(vector, fromSpace);
  17. return WorldToLocal(localToWorld, toSpace);
  18. }
  19. public static Vector3 JitterVector(Vector3 vector, float xJit = 0, float yJit = 0, float zJit = 0)
  20. {
  21. vector = new Vector3(
  22. vector.x + (vector.x * Random.Range(-xJit, xJit)),
  23. vector.y + (vector.y * Random.Range(-yJit, yJit)),
  24. vector.z + (vector.z * Random.Range(-zJit, zJit))
  25. );
  26. return vector;
  27. }
  28. }
  29. }