private Vector3 LimitedVelocity(Vector3 currentVelocity) { Vector2 flatVelocity = UtilMaths.V3toV2_XZ(currentVelocity); flatVelocity = GetLimitedLongitudinalVelocity(flatVelocity); return(UtilMaths.V2toV3_XZ(flatVelocity, currentVelocity.y)); }
public Vector3 Move(Vector2 moveVector, Vector3 lookVectorForward, Vector3 lookVectorRight, Vector3 initialVelocity) { Vector2 RotatedLookVector = CalculateRotatedLookVector( moveVector, UtilMaths.V3toV2_XZ(lookVectorForward), UtilMaths.V3toV2_XZ(lookVectorRight)); Vector3 UpdatedVel = UpdatedVelocity(RotatedLookVector, initialVelocity); return(UpdatedVel); }
public void Approximately_GivenTwoVectorsWithTwoAxesOutsideAcceptableError_ReturnsFalse() { Assert.IsFalse(UtilMaths.Approximately(new Vector3(0, 0, 0), new Vector3(0.1f, 0.1f, 0f), 0.01f)); }
public void Approximately_GivenTwoIdenticalVectors_ReturnsTrue() { Assert.IsTrue(UtilMaths.Approximately(new Vector3(1, 1, 1), new Vector3(1, 1, 1), 0.01f)); }
public void Approximately_GivenTwoSimilarVectorsWithinAcceptableError_ReturnsTrue() { Assert.IsTrue(UtilMaths.Approximately(new Vector3(0, 0, 0), new Vector3(0.00001f, 0.00001f, 0.00001f), 0.01f)); }
public void V2toV3YZ_givenVector2_returnsCorrectVector3() { Assert.AreEqual(UtilMaths.V2toV3_YZ(TestVector2), new Vector3(0, 1f, 2f)); }
public void V2toV3XY_givenVector3_returnsCorrectVector3() { Assert.AreEqual(UtilMaths.V2toV3_XY(TestVector2), new Vector3(1f, 2, 0f)); }
public void V3toV2YZ_givenVector3_returnsCorrectVector2() { Assert.AreEqual(UtilMaths.V3toV2_YZ(TestVector3), new Vector2(2f, 3f)); }
public void V3toV2XY_givenVector3_returnsCorrectVector2() { Assert.AreEqual(UtilMaths.V3toV2_XY(TestVector3), new Vector2(1f, 2f)); }