public static float preciseangle(float3 v1, float3 v2) { var v3 = v1.normalized(); var v4 = v2.normalized(); return(math.dot(v1, v2) < 0 ? math.PI - 2 * ((-v3 - v4).length() / 2).asin() : 2 * ((v3 - v4).length() / 2).asin()); }