Hexagonal Grids

I am trying to build a strategy game based on hexagonal maps. Most hexagonal grids I found are based on the logic of tiling and instantiating single-hex-prefabs into a pattern to form the hexagonal gameboard. This seems to me like a waste of resources ? 20x20 grid would give me 400 GameObjects, which I think is silly ?

Another way people mention would be to use light cookie projectors. How would I go about dynamically coloring individual tiles when I want to show a path, or border ? I’d have to render the cookie texture procedurally ? Is this difficult + slow ?

And the final idea I found would be to procedurally create hex-planes ( let’s say 20x20 ) and then stich the planes together to form a large map. 20x20 would be one single mesh - seems to me like a really optimized draw-call method. But I am totally confused about texturing individual hexes in such a mesh ? How would I dynamically change colors of a single hex , or hide/show individual hexes in such a single mesh ?

So my question is: Are there more methods that I don’t know about ? What would be the most efficient - most mobile-friendly way of creating a hexagonal grid ?

I’d go with line renderer.

If you’re worried about memory overhead, you can just create a script that handles an array of particles that will render directly without much overhead at all. This will still give you control over material too.

For even more memory efficiency, instead of swapping materials to change a hexagon’s look, you could make a texture atlas and pack it with the different hexagons as needed. So instead of changing material, you just change the given hexagon particle’s UV coords.