// Rotates degree to targetDegree (between 0 and 360), taking the shortest distance. Lerp argument is amount to rotate by. // Note: Lerp of 0.5 may be good place to start. public static float RotateTo(float degree, float targetDegree, float lerp) { float diff = targetDegree - degree + 360f; // Return Target Degree if it's been matched. if (Math.Abs(diff) <= lerp) { return(targetDegree); } // Otherwise, return next step: if (diff > 0f) { degree += lerp; } else { degree -= lerp; } return(Degrees.Normalize(degree)); }
// Reverse the angle public static float Reverse(float degrees) { return(Degrees.Normalize(degrees + 180f)); }