This commit is contained in:
CortexCore
2023-11-06 01:17:23 +08:00
parent bd40165ade
commit 5446067f91
114 changed files with 2023 additions and 414 deletions

View File

@@ -24,9 +24,38 @@ namespace BITKit
{
return float.IsNaN(self.x) || float.IsNaN(self.y) || float.IsNaN(self.z) || float.IsNaN(self.w);
}
public static Quaternion AlignRotation(Quaternion rotation, float angleIncrement)
{
var eulerAngles = rotation.eulerAngles;
eulerAngles.x = Mathf.Round(eulerAngles.x / angleIncrement) * angleIncrement;
eulerAngles.y = Mathf.Round(eulerAngles.y / angleIncrement) * angleIncrement;
eulerAngles.z = Mathf.Round(eulerAngles.z / angleIncrement) * angleIncrement;
return Quaternion.Euler(eulerAngles);
}
}
public static partial class MathV
{
// 对于 Vector3
public static Vector3 AlignRotation(Vector3 eulerAngles, float angleIncrement)
{
eulerAngles.x = Mathf.Round(eulerAngles.x / angleIncrement) * angleIncrement;
eulerAngles.y = Mathf.Round(eulerAngles.y / angleIncrement) * angleIncrement;
eulerAngles.z = Mathf.Round(eulerAngles.z / angleIncrement) * angleIncrement;
return eulerAngles;
}
public static Vector3 AlignToGrid(Vector3 position, float gridSize)
{
var x = Mathf.Round(position.x / gridSize) * gridSize;
var y = Mathf.Round(position.y / gridSize) * gridSize;
var z = Mathf.Round(position.z / gridSize) * gridSize;
return new Vector3(x, y, z);
}
private static float CalculateMaxSpeed(this Vector2 direction)
{
var angle = Vector2.Angle(Vector2.right, direction);