

Return new Vector2(CurvedValue(animationCurve, start.x, end.x, t), CurvedValue(animationCurve, start.y, end.y, t)) Public static Vector2 CurvedValue(AnimationCurveEnum animationCurve, Vector2 start, Vector2 end, float t) Return start + ((end - start) * Mathfx.Bounce(t)) Public static float CurvedValue(AnimationCurveEnum animationCurve, float start, float end, float t) / Return value based on curve from Mathfx class. Great! We will also need a little helper for ease of use! using UnityEngine Debug.Log("Start: " + start + " End: " + end + " Value: " + value + " Half: " + half + " Diff: " + diff + " Retval: " + retval) Public static bool Approx(float val, float about, float range)Įlse retval = start + (end - start) * value test for value that is near specified float (due to floating point inprecision) Return new float3(Bounce(vec.x), Bounce(vec.y), Bounce(vec.z)) Return new float2(Bounce(vec.x), Bounce(vec.y)) Return lineStart + (math.clamp(closestPoint, 0.0f, math.length(fullDirection)) * lineDirection) Public static float3 NearestPointStrict(float3 lineStart, float3 lineEnd, float3 point)įloat3 fullDirection = lineEnd - lineStart įloat3 lineDirection = math.normalize(fullDirection) Return lineStart + (closestPoint * lineDirection) Public static float3 NearestPoint(float3 lineStart, float3 lineEnd, float3 point)įloat3 lineDirection = math.normalize(lineEnd - lineStart) įloat closestPoint = math.dot((point - lineStart), lineDirection) Return new float3(Lerp(start.x, end.x, value), Lerp(start.y, end.y, value), Lerp(start.z, end.z, value)) Public static float3 Lerp(float3 start, float3 end, float value) Return new float2(Lerp(start.x, end.x, value), Lerp(start.y, end.y, value)) Public static float2 Lerp(float2 start, float2 end, float value) Return ((1.0f - value) * start) + (value * end) Public static float Lerp(float start, float end, float value) Return new float3(SmoothStep(vec.x, min, max), SmoothStep(vec.y, min, max), SmoothStep(vec.z, min, max)) Public static float3 SmoothStep(float3 vec, float min, float max) Return new float2(SmoothStep(vec.x, min, max), SmoothStep(vec.y, min, max)) Public static float2 SmoothStep(float2 vec, float min, float max) Public static float SmoothStep(float x, float min, float max) Return new float3(Berp(start.x, end.x, value), Berp(start.y, end.y, value), Berp(start.z, end.z, value)) Public static float3 Berp(float3 start, float3 end, float value) Return new float2(Berp(start.x, end.x, value), Berp(start.y, end.y, value)) Public static float2 Berp(float2 start, float2 end, float value) Public static float Berp(float start, float end, float value) Return new float3(Coserp(start.x, end.x, value), Coserp(start.y, end.y, value), Coserp(start.z, end.z, value)) Public static float3 Coserp(float3 start, float3 end, float value) Return new float2(Coserp(start.x, end.x, value), Coserp(start.y, end.y, value)) Public static float2 Coserp(float2 start, float2 end, float value) Return math.lerp(start, end, 1.0f - s(value * math.PI * 0.5f)) Public static float Coserp(float start, float end, float value) Return new float3(math.lerp(start.x, end.x, math.sin(value * math.PI * 0.5f)), math.lerp(start.y, end.y, math.sin(value * math.PI * 0.5f)), math.lerp(start.z, end.z, math.sin(value * math.PI * 0.5f))) Public static float3 Sinerp(float3 start, float3 end, float value) Return new float2(math.lerp(start.x, end.x, math.sin(value * math.PI * 0.5f)), math.lerp(start.y, end.y, math.sin(value * math.PI * 0.5f))) Public static float2 Sinerp(float2 start, float2 end, float value) Return math.lerp(start, end, math.sin(value * math.PI * 0.5f)) Public static float Sinerp(float start, float end, float value) Return new float3(Hermite(start.x, end.x, value), Hermite(start.y, end.y, value), Hermite(start.z, end.z, value)) Public static float3 Hermite(float3 start, float3 end, float value) Return new float2(Hermite(start.x, end.x, value), Hermite(start.y, end.y, value)) Public static float2 Hermite(float2 start, float2 end, float value)

Return math.lerp(start, end, value * value * (3.0f - 2.0f * value)) Public static float Hermite(float start, float end, float value)

Before we can start building animations or tweening systems, we need to convert Mathfx class to the ECS! using Unity.Mathematics
