In documentation of Polygon we can read:
Polygon[{poly_1,poly_2,…}] represents a collection of polygons poly_i.
But then there is no example how to style each polygon differently in such a collection.
Is there other method than this ridiculous manual method?
(I am not interested in methods that separate the collection into single polygons, I can do that myself.)
polycollection = Polygon[Append[ Table[RotationMatrix[n Pi/3] . # & /@ {{0, 0}, {1, 0}, {1/2, Sqrt[3]/2}}, {n, 0, 5}], {{1, 1}, {2, 1}, {2, 2}, {1, 2}}]]; Graphics[{EdgeForm[Black], Append[polycollection, VertexColors -> {{Red, Red, Red}, {Green, Green, Green}, {Blue, Blue, Blue}, {Yellow, Yellow, Yellow}, {Orange, Orange, Orange}, {Purple, Purple, Purple}, {Pink, Pink, Pink, Pink}}]}] 


Polygonwill automatic union the polygons. I think there are no general way.Style[Polygon@#, RandomColor[]] & /@ polycollection[[1]] // Graphics$\endgroup$VertexColorsaffords you the ability to work with each shape independently. It seems to me that this is exactly what you wanted with your previous example with texture and cube, and there you were frustrated that you couldn't address each sub-shape independently. So, do you want fine level control or don't you? Maybe you should back up and explain what you're actually working on and what you're trying to achieve, and then we might be able to suggest more satisfying solutions. $\endgroup$Polygon[…]rather than something like{…, Polygon[…], …, Polygon[…], …, Polygon[…], …}in your code? By "this ridiculous manual method" do you mean manually input an option likeVertexColors -> {{Red, Red, Red}, {Green, Green, Green}, …, {Pink, Pink, Pink, Pink}}is too cumbersome? Can I recap the question as "if I only want to use one singlePolygon[…]for multiple polygons, how can I style them separately in a simpler way"? $\endgroup$