35 lines
1.0 KiB
C#
35 lines
1.0 KiB
C#
using UnityEngine;
|
|
|
|
namespace HQFPSWeapons
|
|
{
|
|
public static class Vector3Utils
|
|
{
|
|
public static Vector3 LocalToWorld(Vector3 vector, Transform transform)
|
|
{
|
|
return transform.rotation * vector;
|
|
}
|
|
|
|
public static Vector3 WorldToLocal(Vector3 vector, Transform transform)
|
|
{
|
|
return Quaternion.Inverse(transform.rotation) * vector;
|
|
}
|
|
|
|
public static Vector3 Convert(Vector3 vector, Transform fromSpace, Transform toSpace)
|
|
{
|
|
Vector3 localToWorld = LocalToWorld(vector, fromSpace);
|
|
|
|
return WorldToLocal(localToWorld, toSpace);
|
|
}
|
|
|
|
public static Vector3 JitterVector(Vector3 vector, float xJit = 0, float yJit = 0, float zJit = 0)
|
|
{
|
|
vector = new Vector3(
|
|
vector.x + (vector.x * Random.Range(-xJit, xJit)),
|
|
vector.y + (vector.y * Random.Range(-yJit, yJit)),
|
|
vector.z + (vector.z * Random.Range(-zJit, zJit))
|
|
);
|
|
|
|
return vector;
|
|
}
|
|
}
|
|
} |