public static void DrawArcColliders( ref List<Angle> x, int size, Angle start, Angle end, Angle RenderAngle, float Radius, float Width, float Heigth, Material mat ) { if (size == 0) DrawArc ( start, end, RenderAngle, Radius, Width, Heigth, mat ); else { int starte = -2, ende = -2; bool f = false; for ( int e = 0; e < size - 1; e+= 2 ) if ( start.IsBetween( x[e], x[e+1] ) ) start = x[e+1]; for ( int e = size - 1; e > 0; e-= 2 ) if ( end.IsBetween ( x[e-1], x[e] ) ) end = x[e-1]; for ( int e = 0; e < size - 1; e += 2 ) { if ( x[e].IsBetween ( start, end ) && f == false ) { starte = e; f = true; } if ( !x[e].IsBetween ( start, end )&& f == true ) { ende = e-1; f = false; } } if ( starte == ende || ende == -1 ) DrawArc ( start, end, RenderAngle, Radius, Width, Heigth, mat ); else { if ( ende == -2 ) ende = size - 1; int e = starte; Angle f1 = start, f2 = end; while ( f1 != x[ende] ) { f2 = x[e]; DrawArc ( f1, f2, RenderAngle, Radius, Width, Heigth, mat ); e = ( e + 1 ) % size; f1 = x[e]; e = ( e + 1 ) % size; } DrawArc ( f1, end, RenderAngle, Radius, Width, Heigth, mat ); } } }